В принципе, мне нужно получить текст между двумя тегами span, и я пробовал кучу разных методов без решения. Я использую Simple HTML DOM Parser (http://simplehtmldom.sourceforge.net/), поэтому то, что я могу сделать, немного ограничено. Вот базовая настройка:
<span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span>
Любая помощь?
Текст между элементами span должен быть DOMTextNode и sibling для элементов span. Если SimpleHTMLDom следует спецификациям DOM, вы можете получить его с помощью:
$text = $html->find('span[class=1]', 0)->next_sibling();
Если это не работает, подумайте об использовании более подходящего парсера, который основан на libxml, например, см.
Попробуйте PHP Dom :
$dom = new DomDocument; $dom->loadHtml(' <span class=1>text here</span> TEXT I NEED TO GET <span class=2>more text</span> '); $xpath = new DomXpath($dom); foreach ($xpath->query('//body/text()') as $textNode) { echo $textNode->nodeValue; // will be: ' TEXT I NEED TO GET ' }
Это даст вам блоки текста.
Попробуй это:
echo $html->find('text',1);
вывод:
TEXT I NEED TO GET