2016-02-02 4 views
3

У меня есть html-содержимое в переменной PHP, и я хочу найти конкретную строку с ее тегами.строка поиска с тегами html

Предположим, моя переменная

$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html> 

Теперь я хочу, чтобы искать, как в $var тогда он должен вернуть мне это тег, так что я должен получить как

, как это можно сделать с помощью PHP ?

Любая помощь будет оценена по достоинству.

+0

за то, что вы ищете и каков ваш желаемый результат? Пожалуйста, очистите его. –

+0

Вы хотите использовать strip_tags() –

ответ

3

Использование регулярных выражений:

$search = 'how'; 
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>"; 
preg_match_all('/<[^>]+>'.$search.'<\/[^>]+>/',$var,$matches); 
$found = $matches[0][0]; 
echo $found; 

Выход:

как

Чтобы получить все how строки, те, с и без тегов, изменить регулярное выражение для этого (добавить OR| оператор:

preg_match_all('/<[^>]+>'.$search.'<\/[^>]+>|\b'.$search.'\b/',$var,$matches); 
+0

Спасибо за ответ! это идеально, что я хотел – user3886556

+0

Предположим, мои $ var = " how .. how вы?"; тогда можно получить как 1. как 2. как user3886556

+0

уверен, что все совпадения будут в '$ matches [0]' массиве с соответствующим ключом. –

0

Вы хотите, чтобы элемент, содержащий вашу ценность? Вы могли бы пойти на XPATH подход:

<?php 
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>"; 
$xml = simplexml_load_string($var); 
$elements = $xml->xpath("//*[. = 'how']"); 
# looking for any value in the tree where the text equals 'how' 
# giving back an array of found matches 
print_r($elements); 
?> 

Обнаружили ideone.com демо здесь.

+0

это только дает мне как. а не теги, кроме него – user3886556

0

У вас есть вопросы по этому вопросу ??

Если вы хотите знать, что ваша строка поиска находится в $ var или нет, попробуйте это.

<?php 
$var = "<html>Hi.. <strong>how</strong>are <u>you?</u></html>"; 
$findme = "how"; 
$pos = strpos($var, $findme); 
if($pos === false) 
    echo $findme.", Not found."; 
else 
    echo $findme.", The string found"; 
?> 
+0

, он будет искать только то, что не теги, кроме него – user3886556

+0

Да, если вы хотите получить строку поиска с окружающими тегами, тогда вам нужно использовать регулярное выражение для лучшего вывода как простой способ. у вас есть ответ, так что вперед. –

+0

да, этот ответ мне помог. Спасибо за ваш ответ, хотя – user3886556

 Смежные вопросы

  • Нет связанных вопросов^_^