Если вы хотите, чтобы все внутренние тексты <span>
тегов, имеющих lang-fr
в их значении class
атрибута, вы можете использовать следующее решение на основе DOMDocument/DOMXPath:
$contents = file_get_contents("http://quizlet.com/9117/envol-7-unite-1-presentation-flash-cards/");
$dom = new DOMDocument;
@$dom->loadHTML($contents, LIBXML_HTML_NOIMPLIED|LIBXML_HTML_NODEFDTD);
$xp = new DOMXPath($dom);
$spans = $xp->query('//span[contains(@class,"lang-fr")]');
$arr = array();
foreach ($spans as $span) {
array_push($arr, $span->nodeValue);
}
print_r($arr);
См IDEONE demo
Здесь xpath - '//span[contains(@class,"lang-fr")]'
. Вы можете сделать его более строгим, чтобы получить только теги span с атрибутом класса, равным «TermText qWord lang-fr»: '//span[@class="lang-fr"]'
.
Это решение избавляет вас от проблемы сопоставления значений атрибутов разделителя того или иного типа в HTML. И многие другие вопросы, связанные с регулярным анализом регулярных выражений.
1) http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags 2) Эта строка не отображается на указанном вами URL-адресе. (Строка в источнике использует инкапсуляцию одиночной кавычки для определения класса, для справки). –
@JonStirling, для вашего комментария # 2, строка существует в строке 895 – CodeGodie
@CodeGodie Нет, это не так. Посмотрите внимательнее. –