[PHP] Функция поиска текста

B
На сайте с 03.08.2007
Offline
82
1385

Добрый день!

Передо мной стоит следующая задача: найти заданный текст на странице, который заключен в теги. Прочитал, что для этой задачи можно использовать разные функции: preg_match_all, strpos и т.п. Но ни с одной нормально у меня не получается подружиться:

Искомый текст, заключенный в теги:

<a href="/path/4fba46cc378501412b000001/">

Поиск, который не работает:

$page = file_get_contents($PageURL);
$text = "4fba46cc378501412b000001";

$search = strpos($page, $text);

if ($search == true)
echo "Text found!";
else
echo "Text not found.";

И так тоже не ищет:

$page = file_get_contents($UserURL);
$text = "4fba46cc378501412b000001";

$search = preg_match($text, $page);

if ($search == true)
echo "Phrase found!";
else
echo "Phrase not found.";

Или все же нужно использовать preg_match_all() с регулярным выражением? :confused:

Prior
На сайте с 03.03.2008
Offline
184
#1

if ($search === true)

RTF как говорится

Ответы на вопрос - https://answers.net.pl
B
На сайте с 03.08.2007
Offline
82
#2
Prior:
if ($search === true)


RTF как говорится

Я с '===' пробовал, текст все равно не находится.

Анабой Янсур
На сайте с 12.04.2011
Offline
114
#3

Попробуйте использовать simple_html_dom.

Graffy
На сайте с 05.05.2012
Offline
48
#4

$page = file_get_contents($PageURL);

$text = "4fba46cc378501412b000001";

if(stripos($page,$text)!==false)
echo "Text found!";
else
echo "Text not found.";
AnyTubes Dorgen v2 (/ru/forum/comment/14276302)
L
На сайте с 15.01.2008
Offline
112
#5

bncom, по моему там ни одна из функций не возвращает тру.

strpos - возвращает либо позицию, либо ложь.

а preg_match возвращает ложь только в случае ошибки.

попробуйте от обратного пойти как написал Graffy, если не равно.

только не stripos, а strpos.

n0name
На сайте с 22.12.2006
Offline
54
#6

bncom, ваш первый пример с strpos прекрасно работает. Возможно, в файле просто нет искомой строки?

Сервис сравнения цена на VPS (http://vpska.com/)
siv1987
На сайте с 02.04.2009
Offline
427
#7

http://www.google.ru/search?client=opera&rls=ru&q=strpos&sourceid=opera&ie=utf-8&oe=utf-8


strpos — Возвращает позицию первого вхождения подстроки ....
IA
На сайте с 28.11.2010
Offline
11
#8

$page = file_get_contents($PageURL);

$text = "4fba46cc378501412b000001";

// количество вхождений подстроки в строке
$search = substr_count($page, $text);

// если подстрока встретилась хотя бы один раз
if ($search > 0)
echo "Text found!";
else
echo "Text not found.";
bukachuk
На сайте с 07.09.2008
Offline
97
#9

if(preg_match("/<a href=\"\/path\/(.+?)\/\">/",$html,$match)){
print_r($match);
}

или


if(preg_match("/<a href=\"\/path\/textextetxetx\/\">/",$html,$match)){
echo "Текст найден";
}

textextetxetx заменить нужным

Программирование PHP,Mysql (/ru/forum/934470)
B
На сайте с 03.08.2007
Offline
82
#10

Спасибо всем за советы, разобрался. Теперь все работает, как надо.

Про simple_html_dom возьму на заметку, полезная вещь.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий