В целях отладки сценариев часто бывает нужно посмотреть, что содержит та или иная переменная. Для этой цели можно использовать встроенную функцию var_dump().
Следующая полезная функция выводит значение самой сложной переменной, будь то многомерный массив или объект:
//Распечатка дампа переменной на экране
function dumper($obj)
{
echo “<FONT SIZE=2><PRE>”,
htmlspecialchars(dumperGet($obj)),
“</pre></font>”;
}
//Возвращает строку – дамп значения переменной
//в древовидной форме (если это массив или объект).
//В переменной $leftSp хранится строка с пробелами,
//которая будет выводиться слева от текста.
function dumperGet(&$obj, $leftSp=””)
{
if (is_array($obj))
{
$type = “Array[“.count($obj).”]”;
}
elseif (is_object($obj))
{
$type = “Object”;
}
elseif (gettype($obj) == “boolean”)
{
return $obj? “true” : “false”;
}
{
return “\”$obj\””;
}
$buf = $type;
$leftSp .= “ “;
for (Reset($obj); list($k, $v) = each($obj);)
{
if ($k === “GLOBALS”)
$buf .= “\n$leftSp$k => “.dumperGet($v, $leftSp);
}
return $buf;
}
Функция dumper() использует встроенную функцию htmlspecialchars(), которая заменяет в исходной строке символы ‘<’, ‘>’, ‘”’ на их HTML-эквиваленты <, > и " .
Пример использования функции dumper():
<?php
$my_array = array
(
(
“name”=>”Владимир”,
“fam”=>”Кузнецов”,
“year”=>1995,
“month”=>”май”,
“day”=>15
),
array (“один”, “два”, “три”, “четыре”, “пять”)
);
dumper($my_array);
?>
На экран будет выведено:
Array[3]
0 => Array[5]
0 => "1"
1 => "2"
2 => "3"
3 => "4"
4 => "5"
1 => Array[5]
name => "Владимир"
fam => "Кузнецов"
year => "1995"
month => "май"
day => "15"
2 => Array[5]
0 => "один"
1 => "два"
2 => "три"
3 => "четыре"
4 => "пять"
Для работы со строками в PHP имеется много полезных функций:
strlen(строка)определение текущей длины строки, включая служебные символы (перевод строки, табуляция):
$str = “Привет всем!”;
$dlina = strlen($str); // $n=12
trim(строка)удаление ведущих и заключительных пробелов,
ltrim(строка)удаление только ведущих пробелов,
rtrim(строка)удаление только заключительных пробелов
strchr(строка, символ)возвращает часть строки, начиная с указанного символа и до конца строки; если символ не найден, то возвращаетfalse (учитываются регистры символа и строки):
$str =”Vasja Pupkin”;
$poisk = strchr($str, “u”); // $poisk = “upkin”
stristr(строка, символ)возвращает часть строки, начиная с указанного символа и до конца строки; если символ не найден, то возвращаетfalse (регистры символа и строки не учитываются)
strrchr(строка, символ)возвращает часть строки, начиная с указанного символа и до конца строки; поиск идет с конца строки; если символ не найден, то возвращаетfalse (учитываются регистры символа и строки):
$str =”Vasja Pushkin”;
$poisk = strrchr($str, “s”); // $poisk = “shkin”
strpos(строка1, строка2)возвращает позицию первого вхождения второй строки в первую; если строка не найдена, то возвращаетfalse; нумерация позиций начинается с нуля:
$str =”Vasja Pushkin”;
$poisk = strpos($str, “sh”); // $poisk = 8
strrpos(строка1, строка2)возвращает позицию последнего вхождения второй строки в первую; если строка не найдена, то возвращаетfalse; нумерация позиций начинается с нуля:
$str =”Маша шагает в шапке”;
$poisk = strrpos($str, “ша”); // $poisk = 14
substr(строка, число1, число2)возвращает подстроку, начинающуюся с позиции число1 и длиной число2; нумерация позиций начинается с нуля:
$str =”Маша шагает в шапке”;
$poisk = substr($str, 5, 3); // $poisk = “шаг”
str_replace(строка1, строка2, строка)заменяет в строке все вхождения строки1 на строку2:
$str =”Она красавица из красавиц”;
$poisk = str_replace(“красав”, “умн”, $str);
// $poisk = “Она умница из умниц”
str_repeat(строка, число)повторяет строку заданное количество раз и возвращает ее
strrev(строка)переворачивает строку (“поплавок”) и возвращает ее
str_word_count(строка, цифра)возвращает массив слов, входящих в строку или количество слов в строке, если второй параметр неуказан;
цифра=1: числовые индексы элементов массива соответствуют порядковому номеру слова в строке (нумерация начинается с нуля),
цифра=2: числовые индексы элементов массива соответствуют позиции слова в строке (нумерация начинается с нуля):