Autor wpisu: sokzzuka, dodany: 09.06.2010 18:12, tagi: php
Dzisiejszy post będzie o dwóch przydatnych funkcjach, których dość nagminnie używam. Nie widziałem ich jeszcze nigdzie w internecie za bardzo więc stwierdziłem, że podzielę się nimi z publiką, a nuż się komuś przydadzą.
Pierwsza funkcja jest pewnym ulepszeniem var_dump
. Pewnie nie raz się Wam zdarzyło, że zostawiliście gdzieś samotnego var_dumpa w kodzie i nie mogliście dość do tego gdzie on się podziewa.
Ta funkcja przy wywołaniu podaje nazwę pliku i linie w której została wywołana, jest to podawane nad dumpem. Z innych ekstrasów dołącza ona formatowanie dumpowanej zmiennej (ta funkcjonalność ma już Zend_Debug), więc wynik jest bardziej czytelny. A więc Pani i Panowie oto ona wraz z przykładem:
function dump() { $aTrace = debug_backtrace(false); $aArgs = func_get_args(); echo "<code style='white-space: pre'>"; echo "Line {$aTrace[0]['line']} \n"; echo "File {$aTrace[0]['file']} \n"; call_user_func_array('var_dump',$aArgs); echo "</code>"; } dump('test'); /*wynik Line 4 File D:\www\projekt\index.php string(4) "test" */
Natomiast druga funkcja jaką chciałem przedstawić, to funkcja zamieniająca polskie znaki diakrytyczne na ich odpowiedniki bez ogonków – przydatna przy tworzeniu przyjaznych url-i.
function ascii_encode($input, $encoding = 'utf-8'){ $sResult = iconv($encoding,'ascii//translit', $input); $aSearch = array(',',"'"); $sResult = str_replace($aSearch, '', $sResult); return $sResult; } if(PHP_OS === 'WINNT'){ setlocale(LC_ALL,'polish'); } else { setlocale(LC_ALL,'pl_PL.utf8'); } echo ascii_encode('zażółć gęślą jaźń'); //wynik: zazolc gesla jazn
Bardzo ważną rzeczą w przypadku funkcji ascii_encode jest wcześniejsze wywołanie setlocale, inaczej konwersja nie przebiegnie pomyślnie, co więcej jak zauważyliście inaczej ustawia się locale dla windowsa a inaczej dla całej reszty.