я хочу получить все теги a с тем же классом из файла HTML,
я пытался:
$html = file_get_contents('http://10tv.nana10.co.il/Category/?CategoryID=400008');
preg_match_all('/<a\s+class="FooterNavigationItemValue">(.*)<\/a>/', $html, $div_array);
return var_dump($div_array);
но я получаю пустой массив, помогите?
Как прокомментировал Марк Б., лучше всего использовать DOM. Но так как вы ищете регулярное выражение:
'#<a.*?class="FooterNavigationItemValue".*?>(.*?)</a>#s'
Постскриптум Я посмотрел на сайт, упомянутый в коде, и этот кусок регулярного выражения делает свою работу отлично.
Теперь объяснение:
два .*?
до и после class="FooterNavigationItemValue"
чтобы убедиться, что строка по-прежнему совпадает, если есть что-то до и после class="FooterNavigationItemValue"
,
И я использовал (.*?)
вместо (.*)
для предотвращения регулярных выражений жадности. Более подробную информацию можно найти здесь: Что ленивый и жадный означает в контексте регулярных выражений?
Других решений пока нет …