Я пытаюсь найти соответствие, ссылка на который наполовину на английском, наполовину на арабском.
Ссылка в качестве примера выглядит так:
"/<arabic>/123/<arabic>-<english>.html"
Основа preg_match('@<a href="/(.*?).html" >);
возвращает все обратно, однако арабский в URL означает, что он больше не может быть идентифицирован на странице, возвращая "دانلود-رایÚ"
например.
Я пытался некоторые вещи, которые я видел, такие как \p{Arabic}
однако это ничего не возвращает. Есть ли способ, чтобы быть в состоянии захватить эти ссылки?
Это то, с чем я довольно озадачен и не могу найти пути решения этой проблемы.
Изменить, чтобы добавить preg матч & что я пытаюсь сопоставить.
preg_match_all('@<a href="/\p{Arabic}/(.*?)/\p{Arabic}-(.*?)" >@iu',$page,$link);
пример текста —
"a href="/دانلود-رایگان-کتاب/کتاب-های-خارجی/مطلب/2120-the-essential-financial.html"
Подумайте дважды, прежде чем использовать регулярное выражение для анализа HTML.
$doc = new DOMDocument();
$doc->loadHTML($yourHTML);
$links = $doc->getElementsByTagName('a');
foreach($links as $link){
echo $link->getAttribute('href');
}
Других решений пока нет …