首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >简单的html dom和文本

简单的html dom和文本
EN

Stack Overflow用户
提问于 2012-04-14 02:50:19
回答 3查看 1.4K关注 0票数 0

假设一个简单的html dom对象包括以下内容:

代码语言:javascript
代码运行次数:0
运行
复制
text1
<br />
<br />
<br />
text2
<br />

如何使用简单的html dom获取这两个文本中的任何一个?

EN

回答 3

Stack Overflow用户

发布于 2012-05-27 09:49:28

要获取所有纯文本元素,可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
$string="text1
<br />
<br />
<br />
text2
<br />";

$html = str_get_html($string);
$texts=$html->find('text');
foreach($texts as $elem_index => $text){
    echo $elem_index."=>".$text."<br>";
}

您的输出应如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
0=>text1
1=>
2=>
3=> text2 

在foreach循环中,您显然可以执行所需的任何过滤操作。例如,如果您试图查找一些与特定字符串匹配的文本,您可以简单地这样做:

代码语言:javascript
代码运行次数:0
运行
复制
if (trim($text) == "text2")
    //do something

因此,如果想要替换找到的文本,可以使用:

代码语言:javascript
代码运行次数:0
运行
复制
if (trim($text) == "text2")
    $texts[$elem_index]->innertext = "something else";
$html->save();

$html将包含新的html。

票数 1
EN

Stack Overflow用户

发布于 2017-11-30 14:06:41

只需使用纯文本从html获取文本值。

代码语言:javascript
代码运行次数:0
运行
复制
$opts = array(
'http' => array(
    'method' => "GET",
    'header' => "Accept-language: en\r\n" .
        "User-Agent:    Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; 
         rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6\r\n" .
        "Cookie: foo=bar\r\n"
     )
  );

$context = stream_context_create($opts);

$html1 = new simple_html_dom();
$html1->load_file($url, false, $context);
$appName1 = $html1->find('tagname.classname or id', 0)->plaintext;

对于类使用(tagname.classname),对于id使用(tagname#id)获取文本。

$context用于设置浏览器支持的头部,如果任何网站获得移动版,那么你可以添加头部来获取浏览器支持内容。

票数 1
EN

Stack Overflow用户

发布于 2012-04-14 04:06:18

使用jquery尝试$(document.body).contents();

这应该是一个以text1和text2作为文本节点的节点数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10146631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档