长话短说!我需要删除所有没有ID和Class设置的SPAN标签。我需要删除所有没有设置ID和Class的SPAN标签。我找到了DOMXPath查询选择器,可以用,但我不知道如何删除标签,而不触动文本。
关于第一条的说明 foreach
:第一次 foreach
是循环的句子,所以我需要把所有处理过的值都返回到 $splited_sentences
阵列。
foreach ($splited_sentences as $sentence_key => $sentence_value) {
$html_dom = Html::load($sentence_value);
$xpath = new DOMXPath($html_dom);
foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
// Not working Idea, all commented code is just idea to represent needed outcome:
// $just_text = stip_html($element);
// $splited_sentences[$sentence_key] = str_replace($element, $just_text);
}
}
你可以使用 strip_tags()来删除任何 html 标签,尝试以下代码。
foreach ($splited_sentences as $sentence_key => $sentence_value) {
$html_dom = Html::load($sentence_value);
$xpath = new DOMXPath($html_dom);
foreach ($xpath->query('//span[not(@id) and not(@class)]') as $element_key => $element) {
$just_text = strip_tags ($element);
$splited_sentences[$sentence_key] = str_replace($element, $just_text);
}
}