Использование PHP-скриптов с локального сервера (localhost) для обработки контента при парсинге

Content Downloader

Content Downloader

Техника обработки данных при парсинге контента (во вкладке “контент”) функциями языка PHP:

1) Качаем, устанавливаем и запускаем локальный сервер Denwer
2) Копируем ваши PHP-скрипты для обработки контента при парсинге в папку Z:\denwer\www\denwer (где Z – имя виртуального диска с Denwer)
3) Отправляем POST-данные PHP-скриптам на Денвере из шаблона вывода программы Content Downloader макросом PHP_SCRIPT и получаем от них обработанные данные


Как отправлять в PHP-скрипт различные POST-данные (любой текст или код):

Переходим во вкладку “контент”, нажимаем ctrl+2, в открывшийся шаблон вывода прописываем примерно следующее:

1
2
<PHP_SCRIPT=http://localhost/denwer/14.php[UTF-8]>data1=[DATAENCODE]5[/DATAENCODE]
data2=[DATAENCODE]7[/DATAENCODE]</PHP_SCRIPT>

В этом примере мы отправили PHP-скрипту (Z:\denwer\www\denwer\14.php) две переменных: data1, в которой содержится текст (число) "5" и data2, в которой содержится (передается) текст "7".

Значения переменных обязательно должны помещаться в DATAENCODE (DATAENCODE кодирует отправляемый текст в процентную URL-кодировку, чтобы скрипт правильно принял данные и автоматически расшифровал их из URL-кодировки).

Каждая отправляемая переменная прописывается с новой строки в формате имя_переменной=[DATAENCODE]значение_переменной[/DATAENCODE].

Скрипту можно отправлять многострочный текст/код любой длины!

Также обратите внимание на параметр [UTF-8], который прописывается после ссылки на вызываемый PHP-скрипт. Если этот параметр присутствует, то Content Downloader автоматически преобразует данные из UTF-8 кодировки при их получении от скрипта. Если этот параметр убрать, то данные декодироваться не будут.


Работа с отправленными данными в PHP-скрипте:

Для использования полученных от Content Downloader данных в PHP-скриптах применяются следующие операторы: $_POST[имя_переменной]. Например, мы отправляем в скрипт две переменных с числами 5 и 7:

1
2
<PHP_SCRIPT=http://localhost/denwer/14.php[UTF-8]>data1=[DATAENCODE]5[/DATAENCODE]
data2=[DATAENCODE]7[/DATAENCODE]</PHP_SCRIPT>

Для того, чтобы, к примеру, сложить их в скрипте и полученную сумму умножить на 2, мы в PHP-скрипт пропишем следующее:

1
2
3
<?php
$res = ($_POST[a] + $_POST[b])*2;
?>



Как вернуть обработанные данные из PHP-скрипта в любимый Content Downloader:

Content Downloader вставит в результат парсинга (на место макроса PHP_SCRIPT) все то, что вернется от скрипта оператором echo, например:

1
2
3
4
<?php
$res = ($_POST[a] + $_POST[b])*2;
echo $res;
?>

В этом случае, если мы отправляем в переменной a значение 5, а в переменной b значение 7, то в результате работы макроса PHP_SCRIPT останется их сумма, умноженная на 2 – число 24


Примечание 1: В дереве макросов шаблона вывода (ctrl+2) вы можете найти множество PHP_SCRIPT: PHP_SCRIPT_0, PHP_SCRIPT, PHP_SCRIPT_2, PHP_SCRIPT_3, PHP_SCRIPT_4, PHP_SCRIPT_5. Все они работают одинаково, только выполняются в разное время (в определенном порядке). Зная это вы можете вызывать, например, макрос PHP_SCRIPT внутри макроса PHP_SCRIPT_2 (так как сначала выполнится PHP_SCRIPT, и только потом PHP_SCRIPT_2).

Примечание 2: Если вы используете PHP_SCRIPT для импорта данных в базу MySQL, не забывайте экранировать спец символы в отправленных данных функцией mysql_real_escape_string (http://sbfactory.ru/cd/?p=419):

1
2
3
4
5
<?php
...
$_POST[id] = mysql_real_escape_string($_POST[id]); #экранируем специальные символы в полученных от Content Downloader POST-данных id
...
?>
1 Star2 Stars3 Stars4 Stars5 Stars (Еще нет оценок)
Loading...
Автор: admin, 29 June 2014
Рубрики: Парсинг
Tags: , ,
Есть 2 коммент. к сообщению: “Использование PHP-скриптов с локального сервера (localhost) для обработки контента при парсинге”
  1. Мик says:

    Привет
    Почему не работает вот такое выражение?
    [VAR:counter1]|[GRAN1]|[GRAN2]|counter=[DATAENCODE][VAR:counter1][/DATAENCODE]

    вот такое работает,
    [VAR:counter1]|[GRAN1]|[GRAN2]|counter=[DATAENCODE]test[/DATAENCODE]
    т.е не желает передавать именно переменную counter1

    Мне нужен счётчик, обнулямый при переходе на следущий урл для парсинга
    [VAR][SET:counter1]3[/SET][/VAR]||
    а в шаблоне повторяющихся страниц
    ||[VAR:counter1]|[GRAN1]|[GRAN2]|counter=[VAR:counter1]
    в php скрипте
    простой код увеличивающий на один значение переменной counter
    возможно как-то по другому можно сделать?

    • admin says:

      Здравствуйте.

      Рекомендую для этой задачи использовать внутренний счетчик повторяющихся границ парсинга [CC] (обратите внимание на его краткое описание в нижней части окна ctrl+5).

      Если у вас будут еще вопросы, пожалуйста, задавайте их на форуме http://forum.SBFactory.ru

      Спасибо!

Написать комментарий

Последние статьи

css.php