T&R splet blog o spletnih storitvah. Razgaljamo tehnologijo!

reference spletnih strani
26th May

PHP – izpis podatkov – dump – razhroščevanje – debugiranje

Za vse tiste, ki zaenkrat še ne uporabljate kakšnega uporabniškega vmesnika kot je Zend Studio 5.5 ali Eclipse za debugiranje oz. razhroščevanje vaše PHP kode si lahko pomagate s dump funkcijo, ki vidno in pregledno izpisuje PHP spremenljivke oz. podatke v vaših skriptah.

Funkcija dump je bila prvotna napisana s strani Andreja Železnika, positiva.si, kasneje pa je bila deležna nekaj popravkov s strani mene ter malenkostno tudi Rod-a:

PHP:
  1. function dump ($var, $withVarTypes = false) {
  2.     if ($withVarTypes) {
  3.         ob_start();
  4.         var_dump ($var);
  5.         $var = ob_get_contents();
  6.         ob_end_clean();
  7.     }
  8.  
  9.     // Instead of returning empty string on boolean false and true, return (bool)true string
  10.     $var = ($var === true) ? '(bool)true' : $var;
  11.     $var = ($var === false) ? '(bool)false' : $var;
  12.  
  13.     echo '
  14.     <pre style="background: #ddd; border: 1px solid black; margin: 5px; text-align: left; padding: 10px; color: #000; clear: both;">'.
  15.     htmlspecialchars ($withVarTypes ? $var : print_r ($var, true)).
  16.     '</pre>';
  17. }

Funkcija podpira izpis s pomočjo var_dump oz. var_export funkcije. Var_dump vrne zraven izpisa podatkov tudi tip podatka, var_export funkcija pa vrne pravilno PHP kodo, ki jo lahko nato uporabite direktno v vaši PHP kodi. Primerno za izpis tabel (php array), ki jih lahko nato kopirate in prilepite nazaj v vašo skripto. Če ne uporabite parametra $withVarTypes = true, vam funkcijo le pri tipu boolean doda (bool) zraven podatka za lažje pregledovanje rezultatov pri if else blokih.

Vsi posebni znaki se nadomestijo s html entity znaki, da vam ne pokvarijo designa.

Nekaj primerov:

PHP:
  1. #Test 1 - boolean
  2. dump(true);
  3. #Test 2 - string
  4. dump('Dump funkcija je kul');
  5. #Test 3 - array
  6. dump(array('dump' => 'var', 'dump' => 'withVarTypes', 'test' => array('test1', 'test2', 'test3')));
  7. #Test 4 - class
  8. dump(new XMLWriter);
  9.  
  10. #Test 1 - boolean - with var types
  11. dump(true, true);
  12. #Test 2 - string - with var types
  13. dump('Dump funkcija je kul', true);
  14. #Test 3 - array - with var types
  15. dump(array('dump' => 'var', 'dump' => 'withVarTypes', 'test' => array('test1', 'test2', 'test3')), true);
  16. #Test 4 - class - with var types
  17. dump(new XMLWriter, true);

Slika izpisa:
Primer izpisa s pomočjo dump funkcije

Dodatne informacije:

Imate tudi vi kakšno uporabno funkcijo za izpis ali izboljšave zgoraj objavljene? Delite jo z nami...

Deli s skupnostjo:

  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks

Podobni članki:

  1. Rezanje teksta po koncu besede – php funkcija – substr – cut text – UTF-8
  2. Izpis vseh defeniranih spremenljivk v PHP-ju
  3. PHP funkcije v Javascript jeziku – isset
  4. Napiši svoj PHP error handler (obdelovalec napak:P)
  5. Javascript search in replace string funkcije
  6. Javascript – delci uporabne kode
  7. PHP – izdelava galerije – preprosta skripta za prikazovanje slik
  8. PHP – branje Excel (.xls) datoteke – Excel UTF8 branje
  9. Textarea defaultValute – Javascript string replace – uidatepicker onClose
  10. Parse podatkov s spletne strani – php DomDocument

3x komentirano na “PHP – izpis podatkov – dump – razhroščevanje – debugiranje”

  1. gasper_k je napisal:

    v zadnjem času dosti uporabljam tudi FirePHP, mogoče bo komu koristna zadeva. Debug sporoča preko headerjev brskalniku (imeti moraš Firefox + FireBug), tako da lahko gledaš nek output ne da bi "umazal" response.

  2. Roky je napisal:

    gasper_k, jap uporabna zadeva, bom predstavil čez 2-4 dni.

  3. PHP - branje Excel (.xls) datoteke - Excel UTF8 branje | .: TRSplet - internetne storitve .: je napisal:

    [...] PHP - izpis podatkov - dump - razhroščevanje - debugiranje [...]

Dodaj komentar