Главная arrow Программирование arrow HTML arrow Простейшие примеры скриптов на PHP Thursday, June 29 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Простейшие примеры скриптов на PHP Версия для печати
Написал microsin   
21.07.2006

Указанная секция PHP может использоваться в любом месте секции <BODY> </BODY>, неограниченное количество раз, вперемежку с обычным текстом html. Чтобы PHP-код начал интерпретироваться, html-страничку (расширение .htm или html) нужно переименовать в .php.

1. Простой вывод текста

<?php echo "Hello world"; ?>
Текст можно вводить как в одинарных кавычках, так и в двойных. В функции аргументы можно передавать без скобок.
Кроме echo можно использовать ключевое слово print. Отличие echo от print в том, что echo может выводить несколько строк, указанных через запятую:
echo  "1", " 2", '<br>';
echo  '1', " 2", "<br>";
Выведут один и тот же результат. Одинарные кавычки отличаются от двойных тем, что одинарные отключают сканирование строки на наличие в ней переменных, например, в следующем примере только первый оператор echo выведет значение переменной:
<?php
$index = 10;
echo "index==$index<br>";
echo 'index==$index<br>';
?>
Одинарные кавычки также отключают действие Esc-кодов (см. ниже). Одинарные кавычки увеличивают производительность кода, поэтому их использование предпочтительнее.

Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.
Heredoc-текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что вам нет необходимости экранировать кавычки в heredoc, но вы по-прежнему можете использовать перечисленные выше управляющие последовательности. Переменные внутри heredoc тоже обрабатываются.
<?php
$str = <<<EOD
Пример строки, охватывающей несколько
строчек, с использованием
heredoc-синтаксиса
EOD;
// Здесь идентификатор – EOD. Ниже
// идентификатор EOT
$name = 'Вася';
echo <<<EOT
Меня зовут "$name".
EOT;
// это выведет "Меня зовут "Вася"."
?>

2. Простейший пример использования переменной

<?php
$text='Fuck you world!!!';
echo ($text);
?>
Здесь показано использование переменной. Имена переменных (как и функций) чувствительны к регистру. Переменные начинаются с символа $ (первый символ), второй символ должен обязательно буква. Переменные видны во всем файле, даже если она объявлена и присвоена в одной секции <?php, а используется в другой секции <?php. Переменные бывают трех типов - числовой, строковый и логический. Тип определяется неявно в момент присвоения переменной значения. Переменная появляется в момент её назначения. Для проверки факта существования переменной имеется функция IsSet, например (выполните этот код 2 раза, во второй раз раскомментируйте присвоение переменной $index):
<?php
//$index = 10;
if (IsSet($index))
   echo 'переменная $index установлена';
else
   echo 'переменная $index НЕ установлена';
?>
Если переменная на была задана (присвоена), но её значение используется, то переменная автоматически получает значение по умолчанию. Например, если функция, применяемая над переменной, математическая, то переменной присвоится число 0. Переменные, объявленные вне функций, являются глобальными, т. е. видны во всем файле. Переменные, объявленные в теле функции, видны только в этой функции. Операторы PHP, в отличие от функций, констант и переменных, нечувствительны к регистру.

3. Неявное преобразование типа переменной (в данном примере преобразование строки в число):
$str = '10';
$index = 2 * $str;
echo $index, "<br>";
Будет выведен результат 20. Это означает, что интерпретатор преобразовал строку '10' в число. При выводе
произошло также преобразование - число 20 было преобразовано в строку '20'. Автоматические преобразования
типов упрощают код, но затрудняют поиск логических ошибок при отладке.

4. Определение констант, использование комментариев

<?php
define("MY_CONST","Hello, Russia!");
echo MY_CONST; # выведет на экран: Hello, Russia!
?>
В этом примере задана константа и показано использование комментариев. Имя константы тоже чувствительно к регистру. Существующие предопределенные логические константы TRUE и FALSE нечувствительны к регистру. Константы удобно использовать в отдельном файле и подключать его оператором require_once, например, в таком файле могут храниться строковые константы пунктов меню. При случае легко поменять язык сайта, просто включив другой файл с константами.

5. Другие способы задания комментариев:
// Это однострочный комментарий в стиле языка С
/*
А вот и
многострочный комментарий
в стиле C!
*/

6. Использование перевода строки и параграфа при выводе

<?php
echo "Hello world!<br>";
echo "My name is Vasya!";
?>
Тут показано использование перевода строки <br> при выводе. Если использовать <P>, то это будет означать конец параграфа, и интервал до новой строки будет увеличен по сравнению с <br>.

7. Использование Ecs-кодов

\r
\n - команда, полностью эквивалентная тегу <br> в HTML - перенос строки (\n почему-то не всегда работает).
\$ - выведет символ доллара.
\\ - выведет обратную косую черту.
\" - выведет кавычки.

8. Пример функции

<?php
#определение функции
function HW()
{
echo "Hello world!";
}
# вызываем функцию
HW();
?>
Имена функций чувствительны к регистру. Возврат значения переменной из функции возможно с помощью ключевого слова return $имя_переменной.
Вместо тега <?php можно использовать тег <?, но лучше этого не делать.

По умолчанию параметры в функцию передаются по значению, то есть переданную в функцию переменную можно свободно изменять внутри функции, и на выходе значение переменной, которая передавалась, останется прежним. Чтобы передать переменную не по значению, а по ссылке, в вызове функции к переменной нужно добавить амперсанд &, например:
<?php
function add_some_extra(&$string)
{
    $string .= 'and something extra.';
}
$str = 'This is a string, ';
add_some_extra($str);
echo $str;    // Выведет 'This is a string, and something extra.'
?>

9. Пример условного оператора, получение переменной окружения

<?php
if ( getenv ( REMOTE_ADDR ) == '192.168.0.14') echo "Нифига не покажу! Сперва пиво, потом инфа!";
else include ('postinfo.html');
?>
Пример условного оператора - проверка на адрес клиента, который зашел на сайт. Если его адрес не равен 192.168.0.14, то будет выведен файл 'postinfo.html' (тут еще и продемонстрировано действие оператора include). Бывают следующие операторы сравнения:
== равно
=== равно и совпадают типы
!= не равно
< > меньше больше
<= меньше либо равно
>= больше либо равно.
Кроме того, есть очень удобный оператор elseif:
$day = 2;
...
if ($day == 1)
   printf("Понедельник");
elseif ($day == 2)
   printf("Вторник");
...
elseif ($day == 7)
   printf("Воскресенье");

Тут также продемонстрировано действие оператора include. Бывают еще функции включения include_once, require, require_once. Функции включения с окончанием _once гарантируют, что включение файла будет произведено только один раз, что спасает от логических ошибок в программе - если будет произведена попытка повторного включения, то сгенерируется фатальная ошибка. Функции include и include_once отличаются от require и require_once тем, что первая пара генерирует только предупреждение об ошибке о продолжает выполнение сценария. Вторая пара генерирует фатальную ошибку (дальнейшее выполнение сценария прекращается). Таким образом, include лучше использовать для включения файлов с содержимым (документов), а require для файлов программы PHP.
Функции подключения удобны при делении страниц сайта на секции - заголовок, тело документа, подвал. В этом случае заголовок и подвал неизменны и вставляются всегда из одних и тех же файлов - дизайн теперь менять намного проще.

10. Получение других переменных окружения

<?php
echo ("REDIRECT_UNIQUE_ID==");echo (getenv (REDIRECT_UNIQUE_ID));echo ("<br>");
echo ("QUERY_STRING==");echo (getenv (QUERY_STRING));echo ("<br>");
echo ("DBENTRY==");echo (getenv (DBENTRY));echo ("<br>");
echo ("REDIRECT_SCRIPT_URI==");echo (getenv (REDIRECT_SCRIPT_URI));echo ("<br>");
echo ("HTTP_ACCEPT_LANGUAGE==");echo (getenv (HTTP_ACCEPT_LANGUAGE));echo ("<br>");
echo ("HTTP_REFERER==");echo (getenv (HTTP_REFERER));echo ("<br>");
echo ("REDIRECT_SCRIPT_URL==");echo (getenv (REDIRECT_SCRIPT_URL));echo ("<br>");
echo ("REMOTE_PORT==");echo (getenv (REMOTE_PORT));echo ("<br>");
echo ("HTTP_ACCEPT==");echo (getenv (HTTP_ACCEPT));echo ("<br>");
echo ("HTTP_USER_AGENT==");echo (getenv (HTTP_USER_AGENT));echo ("<br>");
echo ("GATEWAY_INTERFACE==");echo (getenv (GATEWAY_INTERFACE));echo ("<br>");
echo ("HTTP_HOST==");echo (getenv (HTTP_HOST));echo ("<br>");
echo ("SCRIPT_URI==");echo (getenv (SCRIPT_URI));echo ("<br>");
echo ("SCRIPT_NAME==");echo (getenv (SCRIPT_NAME));echo ("<br>");
echo ("SCRIPT_URL==");echo (getenv (SCRIPT_URL));echo ("<br>");
echo ("SERVER_NAME==");echo (getenv (SERVER_NAME));echo ("<br>");
echo ("REDIRECT_STATUS==");echo (getenv (REDIRECT_STATUS));echo ("<br>");
echo ("UNIQUE_ID==");echo (getenv (UNIQUE_ID));echo ("<br>");
echo ("HTTP_VIA==");echo (getenv (HTTP_VIA));echo ("<br>");
echo ("SCRIPT_FILENAME==");echo (getenv (SCRIPT_FILENAME));echo ("<br>");
echo ("PATH==");echo (getenv (PATH));echo ("<br>");
echo ("STATUS==");echo (getenv (STATUS));echo ("<br>");
echo ("SERVER_ADDR==");echo (getenv (SERVER_ADDR));echo ("<br>");
echo ("SERVER_PROTOCOL==");echo (getenv (SERVER_PROTOCOL));echo ("<br>");
echo ("HTTP_CONNECTION==");echo (getenv (HTTP_CONNECTION));echo ("<br>");
echo ("REDIRECT_DBENTRY==");echo (getenv (REDIRECT_DBENTRY));echo ("<br>");
echo ("SERVER_SIGNATURE==");echo (getenv (SERVER_SIGNATURE));echo ("<br>");
echo ("PATH_TRANSLATED==");echo (getenv (PATH_TRANSLATED));echo ("<br>");
echo ("PATH_INFO==");echo (getenv (PATH_INFO));echo ("<br>");
echo ("SERVER_ADMIN==");echo (getenv (SERVER_ADMIN));echo ("<br>");
echo ("SERVER_SOFTWARE==");echo (getenv (SERVER_SOFTWARE));echo ("<br>");
echo ("REMOTE_ADDR==");echo (getenv (REMOTE_ADDR));echo ("<br>");
echo ("DOCUMENT_ROOT==");echo (getenv (DOCUMENT_ROOT));echo ("<br>");
echo ("REQUEST_URI==");echo (getenv (REQUEST_URI));echo ("<br>");
echo ("REDIRECT_URL==");echo (getenv (REDIRECT_URL));echo ("<br>");
echo ("REQUEST_METHOD==");echo (getenv (REQUEST_METHOD));echo ("<br>");
echo ("SERVER_PORT==");echo (getenv (SERVER_PORT));echo ("<br>");
echo ("HTTP_REFERER==");echo (getenv (HTTP_REFERER));echo ("<br>");
?>
Вывод переменных окружения сервера. В одной строке можно использовать несколько операторов, отделенных табуляцией, пробелами и точкой с запятой. Более правильно, конечно, было бы использовать цикл foreach, поскольку перечень переменных для каждого сервера может отличаться (см. пункт 18 Массивы).

11. Логгер пользователей, которые заходят на сайт

<?php
#путь к файлу с будущими логами
$log_path = './logs/' . date("ymd") . '.txt';
#берем из переменной окружения ip-адрес посетителя...
$user_ip = getenv(REMOTE_ADDR );
#... и его тип браузера
$user_brouser = getenv(HTTP_USER_AGENT);
#узнаем сегодняшнее число и время
$curent_time = date("ymd H:i:s");
#Компонуем все данные в одну строку (для удобства)
$log_string = "$user_ip        $user_brouser        $curent_time\r\n";
#открываем файл для добавления в него (все добавляется в конец старого файла)
$file = fopen($log_path,"a");
#пишем в файл приготовленную строку
fwrite($file, $log_string, strlen($log_string));
#закрываем файл
fclose($file);
?>
Файл лога будет называться YYMMDD.txt и писаться в папку logs, которая находится в корневом каталоге сайта (там же, где файл index.html).
Что нового:
- строки складываются друг с другом не оператором '+', а оператором '.' (кто бы мог подумать).
- функция date позволяет получать текущее время в отформатированном виде.
- переменные можно складывать еще и просто перечисляя их в одной строке (!..)
- \r\n используем для добавления перевода строки.
- $file = fopen(путь_до_файла,"a") используем для открытия файла и получения его дескриптора ($file). "a" означает, что файл будет использоваться для добавления данных. Возможны другие варианты открытия файла:
'r' - Открыть только для чтения, помещает указатель на начало файла.
'r+' - Открыть для чтения и для записи, помещает указатель на начало файла.
'w' - Открыть только для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не существует, создается новый файл
'w+' - Открыть для чтения и для записи, помещает указатель на начало файла и очищает все содержимое файла. Если файл не существует, создается новый файл.
'a' - Открыть только для записи, помещает указатель на конец файла. Если файл не существует, создается новый файл.
'a+' - Открыть для чтения и для записи, помещает указатель на конец файла. Если файл не существует, создается новый файл.
Может также использоваться символ 'b' в системах, различающих бинарные и текстовые файлы (не используется в Unix). Если данное значение не имеет смысла, оно игнорируется.
- fwrite пишем в файл, fclose его закрываем.

12. Как запустить PHP-скрипт? Опишу один из способов.
- в тело html-странички (например, page.html), в любом месте раздела <BODY></BODY> нужно встроить код PHP:
<html>
<head>
  <title></title>
</head>
<body>
<?php
#тут вставляем код PHP
...
?>
</body>
</html>
- страничку переименовываем из page.html в page.php. В NetObjects Fusion 7.5, в частности, это делается через свойства страницы (Go\Structure View, щелкаем на желто-черную иконку странички, в окошке Properties выбираем закладку Page, жмем кнопку Custom Names..., в выпадающем списке File extension: меняем расширение файла на .php, просто вбивая вручную, жмем Ok).
- убеждаемся, что права на файл page.php равны 755 (права можно просмотреть и изменить либо в командной строке unix, либо в ftp-клиенте с соответствующими возможностями. Я использовал с успехом ftp-клиент, встроенный в Total Commander).
- теперь в браузере нужно загружать не page.html, а page.php. При этом html-код выполнится без изменений и отобразится в браузере, но дополнительно веб-сервер выполнит и PHP-код, заключенный между тегами <?php и ?>. Отобразится как HTML-код, так и то, что будет выведено командой echo в коде PHP. Этот код может многое - модифицировать выводимую страницу, обращаться к базам данных, писать и читать файлы на web-сервере и многое другое. Если просмотреть исходный код страницы page.php в браузере (правая кнопка - View Source), то код PHP виден не будет (т. е. сервер отдает пользователю уже откомпилированную страничку).

13. Функция phpinfo() выводит красивую и подробную информацию об установленном PHP.

14. Функция Error_Reporting() меняет параметры вывода сообщений об ошибке.
Error_Reporting(E_ALL);             //вкл. вывод всех сообщ. об ошибках и предупр.
Error_Reporting(E_ALL & ~E_NOTICE); //отключает предупреждающие сообщения
Error_Reporting(E_ALL - E_NOTICE);  //то же самое
Error_Reporting(E_ALL - (E_NOTICE+E_WARNING));   //то же самое
Если перед функцией поставить символ @, например @print(), то в случае ошибки в этой функции сообщение об ошибке не выведется. Про перехват ошибок подробнее можно почитать здесь.

15. Блок кода задается так же, как в C, с помощью {}.

16. Цикл for задается так же, как в C:
for ($i=1; $i<=3; $i=$i+1) {}
for ($i=1; $i<=3; $i++) {}
for (;;) {}                     //бесконечный цикл
Отличие в том, что инициализировать можно несколько переменных:
for ($sum=0, $i=1; $i<=3; $i++) {}
Кроме того, можно делать несколько проверок, но это не имеет смысла, поскольку срабатывает только последняя:
for ($i=1; $i<=3, $sum<1000; $i++) {}
Например, так получим бесконечный цикл:
for ($i=1, $sum=-1; false, false, true; $i = $i + 3, $sum = $sum+3)
{
   print "$i ";
   print "$sum<br>";
}
А так цикл ни разу не выполнится:
for ($i=1, $sum=-1; false, true, false; $i = $i + 3, $sum = $sum+3)
{
   print "$i ";
   print "$sum<br>";
}
Кроме того, можно делать несколько изменений переменных, опять же через запятую.

17. exit() прекращает работу сценария - дальнейший HTML-код не загрузится и не отобразится.
    die("сообщение") делает то же самое, но выводит сообщение.

18. Функция для поиска и замены с помощью регулярного выражения

mixed preg_replace (mixed pattern,
                    mixed replacement,
                    mixed subject
                    [, int limit])
pattern           регулярное выражение для поиска, чего будем менять
replacement       чем заменяем
subject           строка, в которой производится поиск и замена
limit             сколько раз производим замену (необязательный параметр)
mixed             псевдотип; говорит о том, что параметр может принимать множество (но не обязательно все) типов.

19. Массивы

Присвоение элементам значений:
$parts[] = "K155ЛА3";
$parts[] = "K155ЛА8";
$parts[] = "K155ЛН1";
echo $parts[0];           //выведется K155ЛА3
Или так:
$parts[0] = "K155ЛА3";
$parts[1] = "K155ЛА8";
$parts[2] = "K155ЛН1";
echo $parts[0];           //выведется K155ЛА3
Можно и так:
$parts[2] = "K155ЛА3";
$parts[7] = "K155ЛА8";
$parts[20] = "K155ЛН1";
$parts[] = "KРЕН5В";
В этом случае последний элемент массива получит индекс 21.
Можно в качестве индексов использовать символы:
$parts["ca"] = "K155ЛА3";
$parts["d"] = "K155ЛА8";
$parts["nr"] = "K155ЛН1";
echo $parts["ca"];        //выведется K155ЛА3
Можно создавать массивы с помощью функции array:
$parts = array("K155ЛА3", "K155ЛА8", "K155ЛН1");
echo $parts[0];           //выведется K155ЛА3
С помощью функции array можно создавать массивы с символьными индексами:
$parts = array("ca"=>"K155ЛА3", "d" => "K155ЛА8", "nr"=>"K155ЛН1");
echo $parts["nr"];        //выведется K155ЛН1
Цикл foreach позволяет вывести все элементы массива:
$parts[2] = "K155ЛА3";
$parts[7] = "K155ЛА8";
$parts[20] = "K155ЛН1";
foreach ($parts as $val)
{  
   echo $val;
   echo "<br>";
}
А так с помощью foreach можно получать значение индекса:
$parts["ca"] = "K155ЛА3";
$parts["d"] = "K155ЛА8";
$parts["nr"] = "K155ЛН1";
foreach ($parts as $idx => $val)
{  
   echo $idx;
   echo "  ";
   echo $val;
   echo "<br>";
}
Функция count позволяет получить количество элементов массива:
$parts[2] = "K155ЛА3";
$parts[7] = "K155ЛА8";
$parts[20] = "K155ЛН1";
$parts[] = "KРЕН5В";
foreach ($parts as $val)
{  
   echo $val;
   echo "<br>";
}
echo "Total ".count($parts)." parts";
Пример, который выводит все переменные окружения сервера:
foreach ($_SERVER as $key => $val)
{  
   echo $key."       &nbsp";
   echo $val;
   echo "<br>";
}
Этот код не такой громоздкий, как был приведен ранее (п. 10), и выводит весь список существующих переменных. Коды &nbsp выводят пробелы, которые не обрезаются до одного.

Другие предопределенные массивы:
$GLOBALS Все глобальные переменные скрипта (включает все остальные).
$_SERVER Переменные, установленные web-сервером либо напрямую связанные с окружением выполнения текущего скрипта. Аналог старого массива $HTTP_SERVER_VARS (который по-прежнему доступен, но не рекомендуется).
$_GET Переменные, передаваемые скрипту через HTTP GET. Аналог старого массива $HTTP_GET_VARS (который по-прежнему доступен, но не рекомендуется).
$_POST Переменные, передаваемые скрипту через HTTP POST. Аналог старого массива $HTTP_POST_VARS (который по-прежнему доступен, но не рекомендуется).
$_COOKIE Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).
$_FILES Переменные, передаваемые скрипту через HTTP post-загрузку файлов. Аналог старого массива $HTTP_POST_FILES (который по-прежнему доступен, но не рекомендуется). Для дополнительной информации смотрите Загрузка методом POST.
$_ENV Переменные, передаваемые скрипту через окружение. Аналог старого массива $HTTP_ENV_VARS (который по-прежнему доступен, но не рекомендуется).
$_REQUEST Переменные, передаваемые скрипту через механизмы ввода GET, POST и COOKIE, и которым, следовательно, нельзя доверять. Наличие и порядок включения переменных в этот массив определяется в соответствии с директивой конфигурации PHP variables_order. Этот массив не имеет прямых аналогов в версиях PHP до 4.1.0. Смотрите также import_request_variables().
$_SESSION Переменные, зарегистрированные на данный момент в сессии скрипта. Аналог старого массива $HTTP_SESSION_VARS (который по-прежнему доступен, но не рекомендуется). Дополнительную информацию смотрите в разделе Функции обработки сессии.

20. Строки

<?php
// Получение первого символа строки
$str = 'Это тест.';
$first = $str{0};
// Получение третьего символа строки
$third = $str{2};
// Получение последнего символа строки
$str = 'Это все еще тест.';
$last = $str{strlen($str)-1};
// Изменение последнего символа строки
$str = 'Посмотри на море';
$str{strlen($str)-1} = 'я';
?>
Функции для работы со строками и символами:
mixed str_replace (mixed search, mixed replace, mixed subject[, int &count]) возвращает строку, в subject, в которой все search заменены на replace. В переменной count подсчитывается количество замен.
int ord (string string) возвращает ASCII-код первого символа в строке.
string chr (int ascii) возвращает строку из одного символа, код которого задан аргументом ascii.

21. Удобные функции для работы с массивами

array split (string pattern, string string [, int limit]) позволяет получить массив из строки string, помещая её по частям, границы которых выделяются разделителем pattern. При этом pattern может состоять как из одного символа, так и из нескольких, а также из регулярного выражения (подробнее см. help). В результирующие элементы получаемого массива pattern не попадает. Функцию удобно использовать для разделения текста на отдельные строки, для разбиения html-кода на блоки с помощью тегов, для обработки CSV-таблиц и т. д. Если указан необязательный элемент limit, то массив будет состоять из не более чем limit элементов. В случае ошибки функция возвращает FALSE. Пример (открывается простой текстовый файл, каждая строка которого состоит из ссылки, и этими ссылками по разделителю \r\n заполняется массив $good_links):
   $file_good_links_content = file_get_contents ('../good_links.txt');
   $good_links = split (chr(0x0D).chr(0x0A), $file_good_links_content);

bool in_array (mixed needle, array haystack [, bool strict]) - Ищет в массиве haystack значение needle и возвращает TRUE в случае удачи, FALSE в противном случае. Чрезвычайно удобная функция, одной строкой заменяющая цикл поиска по элементам массива. Если третий параметр strict установлен в TRUE, тогда функция in_array() также проверит соответствие types параметра needle и соответствующего значения массива haystack. Если needle - строка, сравнение будет регистрозависимым. Пример:
function DeleteBadLinks (&$html)
// Функция вырезает из текста $html “битые” ссылки - те, которых
//  нет в файле good_links.txt.
// $good_links - массив хороших ссылок
// $html_block - массив блоков текста $html, каждый блок начинается на ссылку
// string get_link (string) - функция выделяет из блока значение ссылки
{
   $file_good_links_content = file_get_contents ('../good_links.txt');
   $good_links = split (chr(0x0D).chr(0x0A), $file_good_links_content);
   $html_block = split (HREF_START, $html);

   $html = '';
   foreach ($html_block as $block)
   // для каждого блока проверяем наличие ссылки в массиве $good_links
   {
      $block = HREF_START.$block;
      $test_link = get_link($block);  //$test_link содержит ссылку из блока
      if ($test_link == '')
         continue;
      else
      {
         // проверим ссылку, если она верная, блок сохраняем в $html
         if (in_array($test_link, $good_links))
            $html .= $block;
      }
   }
}

Последнее обновление ( 25.04.2011 )
 

Комментарии  

  1. #2 Дмитрий
    2011-03-3116:46:28 Молодец! Хорошая статья получилась, только рядом с цифрами лучше проставить названия примеров, проще будет ориентироваться .

    microsin: Вы правы, поправил как смог.
  2. #1 vova
    2010-02-1522:26:23 Спасибо, обязательно попробую скрипты.
    Хотелось бы еще какие-то интересные. Типа запуск скрипта по нажатию кнопки, передача значения поля - например, пишешь цифру, а она передается другому скрипту. и т.д.

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017