Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
- Учебник по PHP (2004).pdf
Скачиваний:
132
Добавлен:
12.04.2015
Размер:
2 Мб
Скачать
☆

изменяются (чаще всего они увеличиваются на число вставляемых значений). Функция возвращает новый размер массива.

$A = array(10,"a"=>20,30); array_unshift($A,"!","?");

// теперь $A===array(0=>"!", 1=>"?", 2=>10, a=>20, 3=>30)

array_unique

Создает массив только из уникальных значений.

Синтаксис :

array array_unique(array arr)

Функция array_unique() возвращает массив, составленный из всех уникальных значений массива arr вместе с их ключами, путем удаления всех дублирующих значений. В результирующий массив помещаются первые встретившиеся пары ключ=>значение. Индексы сохраняются.

$input = array("a" => "green", "red", "b" => "green", "blue", "red");

$result = array_unique($input);

// теперь $result===("a"=>"green", "red", "blue");

Работа с массивами : Переменные и массивы

list

Заносит элементы массива в переменные.

Синтаксис :

list() - языковая конструкция (наподобие array()). Она присваивает перечисленным переменным значения элементов массива, причем первой переменной присваивается первый элемент массива, второй переменной - второй элемент и т.д.

compact

Упаковывает в массив переменные из текущего контекста.

Синтаксис :

array compact(mixed varname1 [, mixed $varname2, ...])

Функция compact() упаковывает в массив переменные из текущего контекста (глобального или контекста функции), заданные своими именами в varname1, $varname2 и т.д. При этом в массиве образуются пары с ключами, равными содержимому varnameN, и значениями соответствующих переменных.

Число аргументов может быть неопределенное.

Если в аргументе указано имя несуществующей переменной, он пропускается. Действие этой функции противоположно функции extract().

$a="Test string"; $b="Some text"; $A=compact("a","b");

// теперь $A===array("a"=>"Test string", "b"=>"Some text")

Почему же тогда параметры функции обозначены как mixed? Дело в том, что они могут быть не только строками, но и списками строк. В этом случае функция последнего перебирает все элементы этого списка, и упаковывает те переменные из текущего контекста, имена которых она встретила. Более того - эти списки могут, в свою очередь, также содержать списки строк, и т.д. Правда, последнее используется достаточно редко.

$a="Test"; $b="Text";

$c="CCC"; $d="DDD";

$List=array("b",array("c","d")); $A=compact("a",$List);

// теперь $A===array("a"=>"Test", "b"=>"Text", "c"=>"CCC", "d"=>"DDD")

extract

экспорт элементов массива в переменные.

Синтаксис :

void extract(array arr [, int extract_type] [, string prefix])

Эта функция производит действия, прямо противоположные compact(). А именно, она получает в параметрах массив arr и превращает каждую его пару ключ=>значение в переменную текущего контекста.

Параметр extract_type предписывает, что делать, если в текущем контексте уже существует переменная с таким же именем, как очередной ключ в arr. Он может быть равен одной из констант, перечисленных в следующей таблице:

Поведение функции extract в случае совпадения переменных EXTR_OVERWRITE Переписывать существующую переменную.

EXTR_SKIP Не перезаписывать переменную, если она уже существует.

EXTR_PREFIX_SAME В случае совпадения имен создавать переменную с именем, предваренным префиксом из $prefix.

EXTR_PREFIX_ALL

Всегда предварять имена создаваемых переменных

 

префиксом $prefix.

По умолчанию подразумевается EXTR_OVERWRITE, т.е. переменные перезаписываются.

//Сделать все переменные окружения глобальными extract($HTTP_ENV_VARS);

//То же самое, но с префиксом E_

extract($HTTP_ENV_VARS, EXTR_PREFIX_ALL, "E_"); echo $E_COMSPEC;

// Выводит переменную окружения COMSPEC

Параметр prefix имеет смысл указать только тогда, когда вы применяете режимы

EXTR_PREFIX_SAME или EXTR_PREFIX_ALL.

Строковые функции : Функции для работы с одиночными символами

chr

Возвращает один символ с определенным кодом.

Синтаксис : string chr(int ascii)

Возвращает строку из одного символа с кодом $code. Эта функция полезна для вставки каких-либо непечатаемых символов в строку - например, кода нуля или символа прогона страницы, а также при работе с бинарными файлами.

<?

// Сначало создаем массив того, что мы собираемся выводить,

//не заботясь о форматировании (дизайне) информации for($i=0, $x=0; $x<16; $x++) {

for($y=0; $y<16; $y++) { $Chars[$x][$y]=array($i,chr($i)); $i++;

}

}

//Теперь выводим накопленную информацию, используя идеологию

//вставки участков кода в HTML-документ

?>

<table border=1 cellpadding=1 cellspacing=0> <?for($y=0; $y<16; $y++) {?>

<tr>

<?for($x=0; $x<16; $x++) {?> <td>

<?=$Chars[$x][$y][0]?>: <b><tt><?=$Chars[$x][$y][1]?></tt></b>

</td>

<?}?>

</tr>

<?}?>

</table>

ord

Возвращает ascii код символа.

Синтаксис : int ord(string str)

Эта функция возвращает ASCII код первого символа строки str.

Например, ord(chr($n)) всегда равно $n - конечно, если $n заключено между нулем и 255.

Строковые функции : Функции отрезания пробелов

trim

Удаляет из заданной строки начальные и конечные пробельные символы.

Синтаксис :

string trim(string str)

Возвращает копию str, только с удаленными ведущими и концевыми пробельными символами. Под пробельными символами надо понимать "\n", "\r", "\t", "\v", "\0" и пробел.

Например, вызов trim(" test\n ") вернет строку "test".

ltrim

Удаляет из заданной строки начальные пробельные символы.

Синтаксис :

string ltrim(string str)

То же, что и trim(), только удаляет исключительно начальные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а концевые не трогает.

rtrim

Удаляет из заданной строки конечные пробельные символы.

Синтаксис :

string rtrim(string str)

То же, что и trim(), только удаляет исключительно конечные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а начальные не трогает. Эта функция - синоним chop().

chop

Удаляет из заданной строки конечные пробельные символы.

Синтаксис :

string chop(string str)

Удаляет только концевые пробелы, начальные не трогает.

Строковые функции : Поиск в тексте

strchr

Поиск первого вхождения символа в строку.

Синтаксис :

string strchr(string haystack, string needle)

Данная функция работает идеентично функции strstr().

strstr

Поиск первого вхождения подстроки в строку.

Синтаксис :

string strstr(string haystack, string needle)

Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.

Вслучае неудачи возвращает false. Данная функция чувствительна к регистру.

Вслучае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

$email = "mailname@mail.ru";

$domain = strstr($email, "@"); // или

$domain = strstr($email, ord("@")) echo $domain;

// выведет @mail.ru

stristr

Нахождение первого вхождения подстроки, не учитывая регистр.

Синтаксис :

string stristr(string haystack, string needle)

Функция stristr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.

В случае неудачи возвращает false.

Данная функция нечувствительна к регистру.

В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

strrchr

Поиск последнего вхождения подстроки.

Синтаксис :

string strrchr(string haystack, string needle)

Функция strrchr() возвращает участок строки, заданной в параметре haystack, начиная с последнего фрагмента, указанного в параметре needle и до конца.

Вслучае неудачи возвращает false. Данная функция чувствительна к регистру.

Вслучае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

// получим последний каталог в $PATH

$dir = substr(strrchr($PATH, ":"), 1);

// а здесь получим все после последнего перевода строки $text = "text 1\nText2\nText3";

echo substr(strrchr($text, 10), 1);

strpos

Находит позицию первого вхождения подстроки в заданной строке.

Синтаксис :

int strpos(string where, string what [, int fromwhere])

Функция strpos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.

Если параметр what не строка, в этом случает его значение преобразуется в целое и используется как код искомого символа.

if(strpos($text, "a")===false) echo "Не найдено!"; // Проверка: три знака равенства

strrpos

Находит в заданной строке последнюю позицию, в которой находится заданный фрагмент.

Синтаксис :

int strrpos(string where, string what)

Данная функция ищет в строке where последнюю позицию, в которой встречался символ what (если what - строка из нескольких символов, то выявляется только первый из них, остальные не играют никакой роли).

Если искомый символ стоит первый в строке или его вообще нет, функция возвратит 0.

В случае, если искомый символ не найден, возвращает false.

substr_count

Находит количество вхождений фрагмента в строку.

Синтаксис :

int substr_count(string where, string what)