Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Веб программирование.Начало.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
7 Мб
Скачать
☆

Изменяемые (динамические) переменные

Иногда бывает удобно давать переменным изменяемые имена. Такие имена могут изменяться динамически. Например:

$a = "hi";

Изменяемая переменная берет некое значение и обрабатывает его как имя переменной. В приведенном выше примере значение hi может быть использовано как имя переменной, посредством применения двух записанных подряд знаков доллара, т.е.:

$$a="PHP"; /* фактически получается что $hi="PHP" */

print "$a ${$a}"; /* получаем на выходе: hi PHP */

print "$a $hi"; /* или так, что одно и то-же */

Внешние библиотечные функции

В этом разделе описываются некоторые из часто используемых функций. Более обширный список доступен на Web-сайте PHP.net.

Функции для работы с массивами

Функции count(), sizeof() – используются для подсчета числа элемен­тов в массиве; sort() – сортировка элементов; shuffle() – случайное пере­мешивание элементов; array_slice($name, offset, length) – используется для извлечения части массива, где $name имя массива, offset - начальная позиция, length указывает число вырезае­мых элементов. Функция array_merge($name1, $name2) – используется для объединения или слияния массивов. Пример:

<?php //pr48

$massiv = array( 'В пятницу вечером после работы

мама свои начинает заботы',

'папа залег на диван, как медведь',

'многое должен ребенок суметь',

'много проблем сам решить, все успеть');

foreach($massiv as $value) echo $value;//Вывод

sort($massiv);//Сортировка

foreach($massiv as $key=>$value)

echo ("<li>$key=>$value</li>");//

rsort($massiv);// Сортировка в обратном порядке

for($i=0;$i<count($massiv);$i++){

echo("<br>$massiv[$i]");

}

shuffle($massiv);// Перемешивание

for($i=0;$i<count($massiv);$i++){

echo("<br>$i-$massiv[$i]");

}

$massiv1=array_slice($massiv,2,3); //вырезать три члена, начиная со второго

// и присвоить их massiv1

print_r($massiv1);

?>

Функции для работы со строками.

Приведем несколько распространенных функций: strlen($st) – возвращает длину строки; ltrim($st) – удаляет разделители типа пробела или табуляции в начале строки; rtrim($st) – удаляет разделители в конце строки; trim($st) - вырезает пробелы в начале и в конце строки. Пример:

<?php //str1.php

//Удаление лишних пробелов по-левому боку текста:<br />

$str=" –Текст с лишними пробелами по бокам.- “;

$str=ltrim($str); //удаление пробелов слева<br />

echo "$str", strlen($str)," <br />";

$str=rtrim($str); //Удаление пробелов справа<br />

echo "$str"," <br />";

$str=" Еще Текст с пробелами по бокам ". $str=trim($str);//Удаление пробелов <br />

echo "$strike";

?>

Вывод:

-Текст с лишними пробелами по бокам.- 89 

-Текст с лишними пробелами по бокам.- 

Еще Текст с лишними пробелами по бокам -Текст с лишними пробелами по бокам.-

Функция strpos($where, $what) находит в строке $where подстроку $what и возвращает ее позицию иначе возвращает false. Функция

substr ($st, $start [, $length]) - возвращает часть строки $st, начиная с позиции $start и длиной $length. Если $length не задана, то возвраща­ется вся подстрока до конца строки. Функция strstr($st, $ndl) - находит в строке $st первое вхождение строки $ndl и возвращает часть строки $st от первого вхождения $ndle до конца. Иначе возвращает FALSE. Для по­иска подстроки без учёта регистра используется функция stristr().

<?php //str2.php

echo strpos("Hello","el"),"<br/>"; // Выводит 1

echo strstr("Hello","el"),"<br/>";

// чтобы избежать проблем с определением типов используйте

//операторы тождественных сравнений (===) (!==)

if (strpos("Norway","rwa") !== false)

echo "Строка rwa есть в Norway","<br/>";

//Пример использования substr()

echo $rest = substr("abcdef", 1),"<br/>"; //возвращает "bcdef"

echo $rest = substr("abcdef", 0, 4),"<br/>";//возвращает "abcd"

$strike = "Programmer";

echo substr($str,0,2),"<br/>"; // Выводит Pr

echo substr($str,-3,3),"<br/>"; // Выводит mer

//Пример strstr()

$email = 'user@example.com';

$domain = strstr($email, '@');

print "$domain, <br/>"; // печатает @example.com

?>

Вывод:

1

Ello

Строка rwa есть в Norway

Bcdef

Abcd

Pr

Mer

@example.com, 

Функция strcmp(string $str1, string $str2) сравнивает две строки посимвольно и возвращает: 0, если строки совпадают; -1, если строка $str1 лексикографически меньше $str2; и 1, если $str1 "больше" $str2. Для функции strcasecmp($str1, $str2) регистр символов не учитывается.

Функция int strspn (string st1, string st2) возвращает длину первого сегмента строки st1, содержащего символы, присутствующие в st2. Следующий фрагмент показывает, как функция strspn( ) используется для проверки пароля. Здесь же сравниваются две одинаковые строки:

<? //Str13.php

$string1 = "butter";

$string2 = "Butter";

if ((strcmp($string1, $string2)) == 0)

print "Strings are equivalent!";

else

print "Strings are not equivalent!";

if ((strcasecmp($string1, $string2)) == 0)

print "Строки совпадают с точностью до регистра!";

$password = "12345";

if (strspn($password, "1234567890") ==strlen($password))

print "Password cannot consist solely of numbers!";

?>

Вывод:

Strings are not equivalent!

Строки совпадают с точностью до регистра!

Password cannot consist solely of numbers!

str_replace(string $from, string $to, string $st) - Заменяет в строке $st все вхождения подстроки $from (с учетом регистра) на $to и возвращает результат. Исходная строка st меняется. В следующем примере символы перевода строки заменяются на их HTML эквивалент — тэг <br>: $st=str_replace("\n","<br>\n",$str). Функция

string WordWrap(string $str, int $width=75, string $break="\n")

разбивает блок текста $str на несколько строк, завершаемых символами $break, так, чтобы на строке было не более $width букв. Возвращается получившаяся строка с символами перевода строки, заданными в $break. Пример:

<?php //str3.php

$strike = "Это текст электронного письма, которое нужно отправить адресату ";

// Разбиваем текст по 30 символов

$strike = WordWrap ($strike, 30, "<br>");

echo $strike;

?>

Вывод: Это текст электронного письма,

которое нужно отправить

адресату

string stripcslashes (string strike) - возвращает строку с вырезанными обратными слэшами \n, \r. Функция

strip_tags (string $str [, string $allow_tags])

удаляет из строки str все тэги и возвращает результат. В параметре $allow_tags перечисляются вплотную друг к другу тэги, которые не следует удалять. Примеры:

<? //str4.php

$str="<b>жирный текст</b>";

echo "$str,<br/>";

$str=strip_tags($str);

echo "НЕ $str<br/>";

//Удаление всех тэгов, кроме <b> и <i>:

$str="<h1>большой текст</h1> <b><i>жирный текст</i></b>";

echo "$str <br/>";

$str=strip_tags($str,"<b><i>");

echo "$str,<br/>";

$strip = strip_tags ($str); // Удаляет все - теги из строки

echo "$strip<br/>";

?>

Вывод:

жирный текст, НЕ жирный текст

большой текст

жирный текст большой текст жирный текст, большой текст жирный текст

Следующие функции предназначены для быстрого URL-кодирования и декодирования. Функция UrlEncode(string $str) кодирует строку и возвращает результат. Например:

echo "<a href=/script.php?param=".UrlEncode($UserData);

UrlDecode(string $st) производит URL-декодирование строки. Функция HtmlSpecialChars(string $str) обычно используется в комбинации с echo. Основное ее назначение - гарантировать, что в выводимой строке ни один участок не будет воспринят как тэг. Заменяет в строке некоторые символы (такие как амперсант, кавычки и знаки "больше" и "меньше") на их HTML-эквиваленты, так, чтобы они выглядели на странице "самими собой". Применяется для формирования параметра value в различных элементах формы, или же при выводе сообщения в гостевой книге.

Функция strtoupper(string) – преобразует строку в верхний регистр; strtolower(string) – преобразует строку в нижний регистр; strrev(string) – возвращает строку string в обратном порядке. Примеры.

<?php//str6.php

$string = "Hello World";

$another_string = "Welcome to PHP";

echo strlen($string);

echo strtoupper($another_string);

echo strrev($another_string);

echo strpbrk($string, "W");

?>

Вывод:

11

WELCOME TO PHP

PHP ot emocleW

World