Подключение php скриптов к шаблону вывода (макрос PHP_SCRIPT, отправка POST и GET запросов)

Подключение php скриптов к шаблону вывода (макрос PHP_SCRIPT, отправка POST и GET запросов)

К шаблону вывода можно подключить любой php-скрипт, которому будут отправляться POST-данные при парсинге контента. С помощью макроса шаблона вывода PHP_SCRIPT вы можете отправить любой код (или текст) скрипту и получить от него ответ в виде обработанного кода. Также можно добавлять данные в MySQL-базу на сервере.

Обратите внимание на опции макросов PHP_SCRIPT

В опциях можно выбрать библиотеку для отправки запросов, рекомендуется использовать Clever Internet Suite (так как она более продвинутая). Библиотеку INDY в PHP_SCRIPT мы решили оставить. Ее использование отличается в написании параметров макроса. Хелп по использованию макросов PHP_SCRIPT с библиотекой INDY ниже в спойлере.

ВАЖНО: отправляемые данные должны браться во внутреннюю функцию PHP_SCRIPT – [DATAENCODE]…[/DATAENCODE] , которая закодирует данные в URL-кодировку (PHP-скрипт на сервере (куда вы отправляете данные) автоматически расшифрует эти POST-данные из URL-кодировки при их получении)! Только так можно отправлять многострочный текст, русский текст или html-код!

В шаблоне вывода может быть сколько угодно много подключенных скриптов.

Простой пример PHP-скрипта, который получит данные из POST-параметра data и вернет их в программу:

Для того, чтобы программа приняла текст от скрипта в UTF-8 кодировке, необходимо поместить [UTF-8] в конец ссылки на скрипт:

Как передать HTTP-заголовки в PHP_SCRIPT (по умолчанию они берутся из поля custom headers в ctrl+h):

HTTP-заголовки указываются в параметре HEADERS:

<PHP_SCRIPT=http://site.ru/script.php[UTF-8]><HEADERS>Accept-Encoding: UTFX Accept: HTML</HEADERS>data=[DATAENCODE]<CD_GRAN_1!>[/DATAENCODE] data2=[DATAENCODE]<CD_GRAN_2!>[/DATAENCODE]</PHP_SCRIPT>

Данные в скрипт отправляются методом POST. Имена POST-параметров вы указываете сами. Если вы хотите отправить в скрипт несколько параметров, то разделяйте переносом строки, например:

data=123 title=567 img=777.jpg

ВАЖНО: Отправляемые МНОГОСТРОЧНЫЕ значения параметров должны браться в [FIELDVALUE]…[/FIELDVALUE]

Для отправки JSON данных воспользуйтесь параметром [JSONREQUEST] (в POST данных может быть только один JSONREQUEST)

Также можно отправлять файлы с локального диска (добавив к началу нужной строки оператор [SUBMITFILE])

<PHP_SCRIPT=http://site.ru/script.php>data=[FIELDVALUE]<CD_GRAN_1!>[/FIELDVALUE] data2=[FIELDVALUE]<CD_GRAN_2!>[/FIELDVALUE] [SUBMITFILE]file=C:\\File.txt</PHP_SCRIPT>

В шаблоне вывода может быть сколько угодно много подключенных скриптов.

Простой пример PHP-скрипта, который получит данные из POST-параметра data и вернет их в программу:

Для того, чтобы программа приняла текст от скрипта в UTF-8 кодировке, необходимо поместить [UTF-8] в конец ссылки на скрипт:

Для того, чтобы программа автоматически расшифровала JSON кодировку полученного текста, добавьте параметр [JSON_DECODE] в конец ссылки на скрипт:

Как передать HTTP-заголовки в PHP_SCRIPT (по умолчанию они берутся из поля custom headers в ctrl+h)

HTTP-заголовки указываются в параметре <HEADERS>:

<PHP_SCRIPT=http://site.ru/script.php[UTF-8]> <HEADERS>Accept-Encoding: UTFX Accept: HTML</HEADERS> data=[FIELDVALUE]<CD_GRAN_1!>[/FIELDVALUE] data2=[FIELDVALUE]<CD_GRAN_2!>[/FIELDVALUE] </PHP_SCRIPT>

Как применять функцию поиск-замены к результатам работы макроса PHP_SCRIPT

Для применения функции поиск-замены к полученным данным используйте параметр <REPLACE>:

<PHP_SCRIPT=http://site.ru/script.php[UTF-8]> <HEADERS>Accept-Encoding: UTFX Accept: HTML</HEADERS> <REPLACE>правила поиск-замены</REPLACE> data=[FIELDVALUE]<CD_GRAN_1!>[/FIELDVALUE] data2=[FIELDVALUE]<CD_GRAN_2!>[/FIELDVALUE] </PHP_SCRIPT>

Как производить повторный запрос к скрипту, если ответ вернул или не вернул указанную подстроку

Сначала установите нужное количество попыток запросов в окне настроек макросов PHP_SCRIPT.

Затем добавьте внутрь макроса PHP_SCRIPT параметр CHECKENTRY

<PHP_SCRIPT=http://site.ru/script.php[UTF-8]> . <CHECKENTRY>Подстрока</CHECKENTRY> . </PHP_SCRIPT>

В случае, если ответ на запрос НЕ будет содержать в себе вхождение “Подстрока”, то будет произведен повторный вызов PHP_SCRIPT. Повторный вызов PHP_SCRIPT будет производиться до тех пор, пока не удовлетворится условие, указанное в параметре CHECKENTRY, либо не будет превышено указанное в настройках количество попыток запросов.

Если нужно делать повторный вызов PHP_SCRIPT, когда в ответе содержится указанное вхождение, то добавьте в параметр CHECKENTRY оператор

<PHP_SCRIPT=http://site.ru/script.php[UTF-8]> . <CHECKENTRY>Подстрока</CHECKENTRY> . </PHP_SCRIPT>

Примечание 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):

<?php . $_POST[id] = mysql_real_escape_string($_POST[id]); #экранируем специальные символы в полученных от Content Downloader POST-данных id . ?>

ВАЖНО: При отправке запросов к https://localhost… или http://localhost… прокси подставляться не будут!

Примечание 3: Если при работе макроса вы получаете ошибку запроса типа:

HTTP/1.1 400 Bad Request или The unknown error was occured: 80090326

Попробуйте поставить другие настройки HTTPS для библиотеки Clever Internet Suite (она используется для отправки POST-запросов в макросах <PHP_SCRIPT>

Также учтите, что для загрузки данных на некоторых сайтах требуется ввести HTTP-заголовки запроса. Как это сделать написано выше. Для получения нужных HTTP-заголовков можно воспользоваться монитором сети в браузере Firefox (shift+ctrl+e).

Connect, read timeout, user agent, и custom headers для макросов PHP_SCRIPT берутся из окна настроек HTTP-запросов программы (ctrl+h). Учтите, что сменить user agent (и другие HTTP-заголовки) для макросов PHP_SCRIPT можно с помощью параметра <HEADERS> (читайте про <HEADERS> выше). Например, для отмены применения custom headers из окна ctrl+h достаточно указать пустой или заполненный параметр <HEADERS>, а для смены user agent нужно просто указать в параметре <HEADERS> строчку с новым user agent.

Дополнительные возможности

<PHP_SCRIPT=http://sbfactory.ru/[UTF-8][GET]> <HEADERS></HEADERS> </PHP_SCRIPT>

Примечание: При использовании GET запроса POST данные не отправляются!

<PHP_SCRIPT=http://sbfactory.ru/[UTF-8][PUT]> <HEADERS></HEADERS> Parameter1=Value1 Parameter2=Value2 </PHP_SCRIPT>

Примечание: PUT запрос сейчас поддерживает только библиотека WIN. Выберите библиотеку WIN для PHP_SCRIPT, как показано на скриншоте ниже

📎📎📎📎📎📎📎📎📎📎