Фриланс-проекты › Консольное PHP-приложение: вопросы-ответы по-ходу выполнения скрипта. Консольное PHP-приложение: вопросы-ответы по-ходу выполнения скрипта.
Коллеги, здравствуйте!
Делаю скрипт, который парсит и обновляет информацию на сайте Wordpress.
Основная задача, сделать именно консольное, что бы исключить браузер из процесса.
В общих чертах, у меня есть два цикла:
1. Проходит все ссылки и парсит контента
1.1 Вложенный цикл отправляет поисковые запросы и выводит результаты, в итоге, мне нужно выбрать один из результатов в консоли.
Штуки вроде $line = readline("Выберите запись для обновления: "); у меня работают не как ожидается, то есть у меня не происходит никакой вывод перед вопросом, то есть первым делом всегда вопрос, независимо от его места в коде.
Я думаю это как-то связано с циклами.
В общем тем кто откликнется, покажу в чём дело в скайпе или зуме или ещё где.
Кидаю сюда кусок кода, может кто-то поймёт сразу в чем дело.
//Начинаем проходиться циклом по каждому url
foreach($data as $url) {
//Получаем содержимое страницы
$source = getHtmlPage(trim($url), false, 15, $proxy_ip, $proxy_login_pass);
//Начинаем парсинг
//Парсим заголовок
$title_search = preg_match_all('#<h1[^>]*?>(.+?)</h1>#su', $source['content'], $title);
//Получаем из заголовка название шаблона или расширения и приводим его к виду будущего названия для файла
$file_name = extractFileNameFromTitle($title);
$name = extractNameFromSearch($title);
//Ищем есть ли указанные расширения или шаблоны в базе, что бы понять, что с ними делать, добавлять новый или обновлять существующий
global $wp_query;
$posts = new WP_Query( array( 's' => $name ) );
$posts = $posts->get_posts();
foreach ($posts as $post) {
$extension_version = get_field('extension-version', $post->ID);
$template_version = get_field('template-version', $post->ID);
echo "[".$i."] $name --> ".$post->post_title." [".$extension_version.$template_version."] \r\n";
$i++;
}
//Спрашиваем какой шаблон или расширение будем заменять
$line = readline("Выберите запись для обновления: ");
readline_add_history($line);
ВОТ ЭТО ВЫВОДИТСЯ ПРЕЖДЕ ЧЕМ ECHO ИЗ ЦИКЛА ВВЫШЕ
}
-
фрилансер больше не работает на сервисе
-
Вы сначала скачиваете страницу как посторонний пользователь, через curl или еще как. А потом - бумс! Как будто вы в админке сайта скрипт выполняет. Это не работает...
global $wp_query;
$posts = new WP_Query( array( 's' => $name ) );
$posts = $posts->get_posts();