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

Преобразование строк и файлов к формату html и наоборот

Функция nl2br(string $str) заменяет все символы новой строки (\n) эквивалентными конструкциями HTML <br>. Функция string htmlentities (string $str ) преобразует символы в эквивалентные конструкции HTML. Функция string htmlspecialchars (string $strike ) преобразует следующие символы: & – в & " " – в " < – в < > – в &gt. В частности, эта функция позволяет предотвратить ввод пользователями опасных символов в форумах. Следующий пример демонстрирует удаление потенциально опасных символов функцией htmlspeclalchars( ):

<?php //ppr33.php

$text= " Мишка косолапый

По лесу идет ";

print $text;

// Преобразовать символы новой строки "\n" в <br>

$htinl = nl2br($text);

print $htinl;

$input = "The cookbook, entitled Cafe Francaise' costs < $42.25.";

echo "input:", $input;

$conv = htmlentities($input);

// $conv = "The cookbook, entitled 'Cafè

// Frac&ccediliaise' costs < 42.25.";

echo "<br> conv:",$conv;

$strike = "A 'quote' is <b>bold</b>";

echo "<br>strike:", $strike,"<br>";

// Outputs: A 'quote' is <b>bold</b>

echo htmlentities($strike),"<br>";

// Outputs: A 'quote' is <b>bold</b>

echo htmlentities($strike, ENT_QUOTES);

//Функция htmlspecialchars( ) преобразует следующие символы:

//& преобразуется в & " " в " < преобразуется в < > в >.

// удаление потенциально опасных символов функцией htmlspeclalchars( ):

$input = "I just can't get of PHP & those fabulous cooking recipes!";

echo "<br>input:", $input;

$conv = htmlspecialchars($input);

// $conv_input = "I just can't <<enough>> of PHP &amp those fabulous cooking recipes!"

echo "<br> conv:",$conv;

?>

Если функция htmlspecialchars( ) используется в сочетании с nl2br( ), то последнюю следует вызывать после htmlspecialchars( ). В противном случае конструкции <br>, сгенерированные при вызове nl2br( ), преобразуются в видимые символы.

Функция string get_html_translation_table (int таблица) обеспечивает удобные средства преобразования текста в эквиваленты HTML. Функция возвращает одну из двух таблиц преобразования, определяемых параметром таблица и используемых в работе стандартных функций htmlspecialchars( ) и htmlentities( ). Параметр «таблица» принимает одно из двух значений: HTML_ENTITIES или HTML_SPECIALCHARS.

В примере функция используется при преобразовании текста в код HTML:

$string = "La pasta e il piatto piu amato in Italia";

$translate = get_html_translation_table(HTML_ENTITIES);

print strtr($string, $translate);

// Специальные символы преобразуются в конструкции HTML

// и правильно отображаются в браузере.

Преобразование html в простой текст

Функция string strip_tags (string строка [, string разрешенные_тeги]), удаляет из строки все теги HTML и РНР. Используется для удаления опасных символов из сообщений на форумах или в гостевых книгах.

Функция get_meta_tags( ) предназначена для поиска в файле HTML тегов МЕТА. Синтаксис функции:

array get_meta_tags (string имя_файла/URL [, int включение_пути])

Применение тегов МЕТА:

<html><head>

<title>PHP Recipes</title>

<meta name = "keywords" content = " PHP, code, recipes, chef, programming, web">

<meta name = "description" content = "PHP Recipes provides savvy readers with the latest in PHP programming and gourmet cuisine!">

<meta name = "author" content = "WJ ">

</head>

Функция get_meta_tags( ) ищет в заголовке документа теги, начинающиеся словом МЕТА, и сохраняет имена тегов и их содержимое в ассоциативном массиве. Ниже продемонстрировано применение этой функции к файлу example.html.

<?php //ppr34.php

$meta_tags = get_meta_tags("example.html");

print_r $meta_tags;

?>

// Переменная $meta_tags содержит массив со следующей информацией:

// $meta_tags["keywords"] = "PHP. food. code, recipes, chef, programming. Web":

// $meta_tags["description"] = "PHP Recipes provides savvy readers with the latest in PHP

//programming and gourmet cuisine"; $meta_tags["author"] = "WJ ";

Преобразование строки к верхнему и нижнему регистру в РНР вы­полняют функции: strtolower(); strtoupper( ); ucfirst( ); ucwords( ). Функция string strtolower(string $str) преобразует все алфавитные символы строки к нижнему регистру. Преобразование к верхнему реги­стру выполняется функцией string strtoupper( $str).

Хэш-функции

Рассмотрим использование хэш-функций. Функция md5(string $str) возвращает хэш-код строки $str, основанный на алгоритме "MD5 Message-Digest Algorithm". Хэш-код – это строка, практически уникальная для каждой из строк $str. Вероятность того, что две разные строки, дадут одинаковый хэш-код, близка к нулю. Если длина строки $st может достигать нескольких тысяч символов, то ее MD5-код занимает максимум 32 символа. Хэш-код и алгоритм MD5 используются, например, для проверки паролей на истинность. В файле паролей можно хранить не сами пароли, а их хэш-коды. При попытке пользователя войти в систему вычисляют хэш-код введенного пароля и сравнивают его с записанным в файле.

Пример использования алгоритма хеширования MD5:

<?php //ppr35.php

$pass_a = "MySecret";

$pass_b = "MySecret";

//Выводим хеш-код строки MySecret($pass_a) – исходный пароль

echo "<b>Хеш-код исходного пароля '$pass_a':</b><b style=\"color:green\">".md5($pass_a)."</b><br>";

//Выводим хеш-код строки MySecret($pass_b) – верифицируемый пароль

echo "<b>Хеш-код верифицируемого пароля '$pass_b':</b><b style=\"color:green\">".md5($pass_b)."</b><br>";

// Сравниваем хеш-коды MD5 исходного и верифицируемого пароля

echo "<h3>Проверяем истинность введенного пароля:</h3>";

if(md5($pass_a)===md5($pass_b))

echo "<h3 style=\"color:green\">Пароль верный! (Хеш-коды совпадают)</h3>";

else echo "<h3 style=\"color:red\">Пароль неверный! (Хеш-коды не совпадают)</h3>"

// выводит: Пароль верный! (Хеш-коды совпадают)

// Попробуйте изменить значение строки $pass_b :

?>

Функция crc32($st) вычисляет 32-битную контрольную сумму строки $st и возвращает 32-битное целое число. Эта функция работает быстрее md5(), но выдает менее надежные хэш-коды.