[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проверка html страницы на наличие определенного те
MaKsoN
Здравствуйте,
помогите, пожалуйста, разобраться с таким вопросом:
Как можно сделать так, чтобы php код проверял html страницу на наличие определенного текста, и если этот текст на странице существует, то код продолжает свою работу, если нет, то заканчивает (возможна проверка на определённую форму, т.е. если её скрипт на странице не находит, то соответственно заканчивает свою работу).

Чтобы было понятнее, приведу пример. Например, нужно зарегистрироваться в каталогах определенной тематики. Скрипт заходит на ссылку каталога и если видит на html странице надпись "автомобили", то начинает регаться в этом каталоге, а если такой надписи не видит, то переходит к другому каталогу.

Заранее благодарен.



Спустя 16 минут, 57 секунд (23.03.2010 - 00:49) Awilum написал(а):
Цитата
Например, нужно зарегистрироваться в каталогах определенной тематики. Скрипт заходит на ссылку каталога и если видит на html странице надпись "автомобили", то начинает регаться в этом каталоге, а если такой надписи не видит, то переходит к другому каталогу.


перешел в каталог(категорию) к примеру PHP
в адресной строке у меня будет index.php?category=php

если на этой странице нажму "добавить", то я возьму category из адресной строки

$_GET['category']

и туда получается уже буду добавлять то что мне надо...


p.s.
так я делал в Copy&Paste

Спустя 33 минуты, 32 секунды (23.03.2010 - 01:22) MatrixGod написал(а):
<?

$string = file_get_contents('http://www.site.com');
$find = "автомобили";

if(strpos($string, $find))
{
echo "ура, нашел...";
}

?>

Спустя 19 минут, 35 секунд (23.03.2010 - 01:42) MaKsoN написал(а):
Цитата (MatrixGod @ 22.03.2010 - 22:22)
<?

$string = file_get_contents('http://www.site.com');
$find = "автомобили";

if(strpos($string, $find))
{
echo "ура, нашел...";
}

?>

Хорошо, спасибо работает!

А если нам нужно выполнить этот код на определенной странице из этапа страниц авторизации на каталоге, то как это можно реализовать?
(Я, к примеру, захожу на сайт.ру и прохожу определенный этап страниц, прежде чем дохожу до выбора категории. Задать эту страницу без прохождения этапа нереально, т.к. ссылки на каталоги берутся из определенного файла, а задавать каждому файлу свой http невозможно)
Т.е. нужно сграбить http и засунуть его в переменную $string?
И можно ли так сделать?

Спустя 6 минут, 27 секунд (23.03.2010 - 01:48) MatrixGod написал(а):
вопрос не совсем ясен...

функция file_get_contents() берет файл и его содержание запихивает в стринг.
функция strpos($string, $find) ищет значение $find в переменной $string и если находит возвращает true.

это можно применить где и как угодно!

Спустя 3 минуты, 54 секунды (23.03.2010 - 01:52) MaKsoN написал(а):
Цитата (MatrixGod @ 22.03.2010 - 22:48)
вопрос не совсем ясен...

функция file_get_contents() берет файл и его содержание запихивает в стринг.
функция strpos($string, $find) ищет значение $find в переменной $string и если находит возвращает true.

это можно применить где и как угодно!

С этим я разобрался.
Но а если мы не можем задать определенный урл страницы в file_get_contents(), а можем задать только тот, который у нас имеется сейчас?
Допустим, нас просят в каталоге пройти определенные шаги, прежде чем попасть в раздел выбора категории. И урл, соответственно уже изменится (т.е. не сайт.ру , а к примеру, сайт.ру/vse_chto_posle_shaga)

алгоритм примерно такой:

$url=file("url.txt");//берем каталогов
$browser->navigate($url[$i]);
l
заходим, заполняем первую форму и переходим к шагу 2
l
тут выбираем нашу категорию

но если мы подставим этот код:

$string = file_get_contents("$url[$i]");
$find = "автомобили";

if(strpos($string, $find))
{
echo "ура, нашел...";
}

то проверятся будет только главная страница.
А как сделать чтобы проверялась страница, которая сейчас online?

Спустя 19 минут, 24 секунды (23.03.2010 - 02:11) MatrixGod написал(а):
никак. пхп не умеет "читать" url... sad.gif

Спустя 6 минут, 34 секунды (23.03.2010 - 02:18) MaKsoN написал(а):
А можно к нашему урлу добавить ещё что-то в http?

Т.е. мы используем однотипные каталоги и мы знаем, что при втором шаге, к http добавится, к примеру, /vibor_categorii. Мы можем как-то к $url[$i] присоединить эту строку?

Спустя 3 минуты, 1 секунда (23.03.2010 - 02:21) MatrixGod написал(а):
это можно.

обычная get-переменная. например "auto".

тогда пишешь...

$string = file_get_contents("http://www.site.com/index.php?cat="."$_GET[cat]");
$find = "автомобили";

if(strpos($string, $find))
{
echo "ура, нашел...";
}

Спустя 1 минута, 32 секунды (23.03.2010 - 02:22) MaKsoN написал(а):
Хорошо, огромное спасибо.

И всё-таки последний вопрос:
А нельзя ли чтобы этот текст искался на онлайновской странице? Т.е. сделался второй шаг и задался тут же поиск нашего слова?

Спустя 1 минута, 40 секунд (23.03.2010 - 02:24) MatrixGod написал(а):
можно. file_get_contents() берет текст откуда угодно.

Спустя 1 минута, 28 секунд (23.03.2010 - 02:26) MaKsoN написал(а):
Спасибо ещё раз за помощь, буду пробовать!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.