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

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

Данные в скрипт отправляются методом POST (имена POST-параметров вы указываете сами. Если вы хотите отправить в скрипт несколько параметров, то разделяйте их {linebreak} или переносом строки, например: data=[DATAENCODE]123[/DATAENCODE]{linebreak}title=[DATAENCODE]567[/DATAENCODE]{linebreak}img=[DATAENCODE]777.jpg[/DATAENCODE]).

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

1
2
<PHP_SCRIPT=http://site.ru/script.php>data=[DATAENCODE]<CD_GRAN_1!>[/DATAENCODE]
data2=[DATAENCODE]<CD_GRAN_2!>[/DATAENCODE]</PHP_SCRIPT>

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

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

1
2
3
<?php
echo $_POST["data"];
?>

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

1
2
<PHP_SCRIPT=http://site.ru/script.php[UTF-8]>data=[DATAENCODE]<CD_GRAN_1!>[/DATAENCODE]
data2=[DATAENCODE]<CD_GRAN_2!>[/DATAENCODE]</PHP_SCRIPT>

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

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

1
2
3
<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>

Примечание 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 (оценок: 12, средний балл: 5,00)
Загрузка...
Автор: admin, 23 января 2011
Рубрики: Парсинг
Метки: ,
26 комментариев к сообщению: “Подключение php скриптов к шаблону вывода (макрос PHP_SCRIPT)”
  1. Виталий:

    Немного не понятно (я далек от программирования :(). Нельзя ли привести конкретный пример конкретного скрипта. Что-нибудь самое простое, например, сделать, чтобы из урла страницы остался только домен.
    В шаблоне, насколько я понимаю, это будет выглядеть так:
    data=
    Сам скрипт выглядит так, вроде:

  2. admin:

    Дописал в конец поста пример скрипта (данный скрипт конвертирует отправленный код из url кодировки в «нормальную»).

  3. Виталий:

    Спасибо, становится понятней. Если ссылку ставить на скрипт на Денвере (вообще локальном сервере) будет работать?

  4. Ilya:

    Все работает… Спасибо автору за работу.

  5. Alex:

    Может и подключаются очень просто, но для меня, не знакомого с php, это совсем не «очень просто». У меня есть предложение: сделать страницу с скриптами, на которую любой мог бы опубликовать свои скрипты. А остальные могли бы найти нужный. Я например, нуждаюсь в скрипте обрезания n кол. знаков от начала парсинга границы. Может кто подскажет? Здесь нашел что то по теме, но надо как то переделать что бы не пробелы удирал скрипт, а знаки. http://www.e-inform.ru/php_str_obrez.php

  6. тоже нужно обрезать каждое слова до первой буквы

  7. Yumin:

    А как боретесь с кодировкой? У меня вся информация по пхп скриптам в кракозякбрах выводиться в csv файле.

  8. zilon:

    у меня тоже проблема с кодировкой при переводе статей. Скрипт сам по себе, отдаёт переведённый текст, в нормальной кодировке, а после подключения к CD получаются краказябры 🙁

  9. Да уж, помню времена, когда файлик с 10 строками кода ПХП был для меня программой, и я не знал что есть что:)
    Вообщем так, ребята. Кому нужна помощь по ПХП — обращайтесь, помогу за определенную плату.
    627-641-940 — це асько, пишите.
    Если интересует, предоставлю в аренду свой хостинг с размещением на нем Ваших скриптов.

  10. Поделитесь рабочим скриптом переводчика — отблагодарю!!!

  11. Татьяна:

    Клевая вещь! Очень помогает при парсинге! Разработчику спасибо за нее!

  12. гость:

    PHP_SCRIPT не поддерживает работу через прокси, можно добавить такую поддержку? Для примера, на mosgid.ru загрузка телефонов имеет лимит для одного адреса, поэтому нужно через прокси заходить. Сами страницы загружаются через прокси, а телефоны нет.

    • admin:

      Постараюсь сделать на следующей недели. Обещать не буду.
      Спасибо!

    • admin:

      Content Downloader X версии 10.88 (19.04.2014):

      Обновление по просьбе клиента

      — Макросы шаблона вывода PHP_SCRIPT теперь поддерживают прокси (не SOCKS, при условии выбранной библиотеки INDY в ctrl+h);
      — Добавлены кнопки вызова редактора поиск-замены для фильтров ссылок и для списков ссылок сканера сайтов;
      — Несколько других доработок.

      • shtrek:

        А можно ли выключить вот эту замечательную фичу как-нибудь? Мой php, почему-то, не обрабатывает запросы через прокси, а включается прокси лишь глобально.
        Ну, или можно коротенький совет по устранению досадного недостатка моего php — что проще.
        Продублирую на форум.

        • admin:

          Content Downloader X версии 10.9950 (04.07.2014):

          Обновление по просьбе клиента

          — Теперь можно отдельно включать (ctrl+r) использование прокси для макросов шаблона вывода PHP_SCRIPT и GETMORECONTENT.

  13. гость:

    [DATAENCODE] в актуальной версии не работает, программа так и отправляет это на скрипт

  14. Виталий:

    немного не понятно про скрипт-переводчик с англ на рус. скрипт надо установить у себя на серваке и уже постом отправлять данные из CD?

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

Вы должны войти чтобы добавить комментарий.

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

css.php