Ho una funzione (DoDb::printJsonDG($sql, $db, 1000, 2)
) che echos json. Devo prenderlo e quindi utilizzare str_replace() prima che venga inviato all'utente. Tuttavia non posso impedirgli di fare eco. Non voglio cambiare printJsonDG perché è utilizzato in molte altre posizioni.Come prevenire echo in PHP e catturare ciò che è dentro?
14
A
risposta
41
È possibile utilizzare le funzioni ob_start()
e ob_get_contents()
in PHP.
<?php
ob_start();
echo "Hello ";
$out1 = ob_get_contents();
echo "World";
$out2 = ob_get_contents();
ob_end_clean();
var_dump($out1, $out2);
?>
uscita sarà:
string(6) "Hello "
string(11) "Hello World"
1
Partenza output buffering, ma preferirei cambiare la funzione, ora che sembra che sarà utilizzato per due cose. Semplicemente restituire la stringa sarebbe la cosa migliore.
5
È possibile farlo utilizzando le funzioni di buffer di output.
ob_start();
/* do your echoing and what not */
$str = ob_get_contents();
/* perform what you need on $str with str_replace */
ob_end_clean();
/* echo it out after doing what you had to */
echo $str;
4
Forse si può refactoring DoDb
:
class DoDb
{
public static function getJsonDG($some, $parameters)
{
/*
original routine from printJsonDG without the print statement
*/
return $result;
}
public static function printJsonDG($some, $parameters)
{
print self::getJsonDG($some, $parameters);
}
}
In questo modo non c'è bisogno di toccare il codice altrove in te applicazione.
Problemi correlati
- 1. Echo PHP dentro Javascript?
- 2. ciò che è flusso e flusso involucro in php
- 3. Come echo JSON in PHP
- 4. ciò che è :: * in C++
- 5. ciò che è "Class :: *"
- 6. Echo citando singolo e doppio in PHP
- 7. Esattamente ciò che è PLINQ?
- 8. Puoi inserire PHP in PHP con echo?
- 9. come stile php echo output
- 10. In PHP, perché non è stato implementato echo come funzione? (non echo vs. printf)
- 11. Echo an $ _POST in PHP
- 12. PHP Echo text Colore
- 13. Etichette <script> e tutto ciò che è in mezzo con PHP?
- 14. Posso usare un OR nella regex senza catturare ciò che è racchiuso?
- 15. Come echo file xml in php
- 16. php: echo "", print(), printf()
- 17. php echo vs tag aprire e chiudere
- 18. Come catturare PHP Warning in PHPUnit
- 19. Come catturare errori DB in CodeIgniter PHP
- 20. trova tutto ciò che è nullo nell'associazione
- 21. Ciò che è protetto virtuale nuova
- 22. "##" in printk, ciò che significa ##
- 23. diference tra return, echo e print keyword in PHP
- 24. Rimozione spazi e tutto ciò che non è alfanumerico
- 25. ciò che è la differenza tra un modello e un'Entità
- 26. Ciò che è oauth_token_secret twitter OAuth
- 27. È ciò che sembra il polimorfismo in PHP veramente il polimorfismo?
- 28. Limita ciò che può creare una classe PHP
- 29. best practice per ciò che è in un ViewModel
- 30. Differenza tra "@echo off" e "@echo% off"?