相关疑难解决方法(0)

2071
推荐指数
28
解决办法
40万
查看次数

循环遍历DOMDocument

我正在遵循这个问题的建议:Robust,PHP的成熟HTML解析器,关于解析可能与DOMDocument格式错误的HTML .

是否有任何简单的方法来循环解析文档?所以我想像这样循环html.

$html='<ul>
         <li>value1</li>
         <li>value1</li>
         <li>value3
            <p>subvalue</p>
         </li>
        </ul>
        <p>hello world</p>';

$doc = new DOMDocument();
$doc->loadHTML($html);
???
foreach (??? as $node)
{
  print $node->nodeName.':'.$node->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)

得到的结果有点像这样.

 ul:
 li:value1
 li:value2
 li:value3
 p:subvalue
 p:hello world
Run Code Online (Sandbox Code Playgroud)

单独使用$doc->childNodes并不能真正做到我想要的.因为它似乎没有下到树中的较低分支.我使用halfdan建议的代码,我得到这样的结果.

html:
html:value1
         value1
         value3
            subvalue

        hello world
Run Code Online (Sandbox Code Playgroud)

php loops domdocument

21
推荐指数
1
解决办法
2万
查看次数

在PHP中解析无效HTML的最佳方法

有没有更好的方法来解析无效的HTML然后应用Tidy?

旁注:有些情况下你不能提供Tidy.我还不建议使用Regexp来解析html.

html php parsing

14
推荐指数
1
解决办法
5943
查看次数

PHP代码遍历HTML文件以查找其中的所有图像?

我想要一个PHP脚本来获取HTML代码中的所有图像并列出它.任何人都可以帮助我这样做,或者我应该如何进行一些想法?我是新手,所以任何帮助将不胜感激.

php

7
推荐指数
1
解决办法
2530
查看次数

如何从字符串中提取PHP中的标题标记

从包含大量HTMl的字符串中,如何将<h1><h2>etc标记中的所有文本提取到新变量中.

可能使用preg_match_all并将匹配发送到单个逗号分隔变量.

多谢你们.

php text preg-match

5
推荐指数
2
解决办法
1万
查看次数

使用PHP获取一个网站,然后使用jQuery遍历它

我正在构建一个系统,我需要用PHP抓取网页的内容,然后解析它以提取某些表等.有一个简单的方法用jQuery做这个或者最好的方法是编写PHP提取数据的功能?

javascript php jquery parsing

3
推荐指数
1
解决办法
1046
查看次数

如何在宽度> = 300的情况下使用正则表达式IMG?

我怎样才能获得所有的<img>s width >= 300

我的标记/代码:

$images = <<<END
<img src="/data/img/201108031_023" width="300" height="400" />
<img src="/data/img/201108031_026" width="250" height="300" />
<img src="/data/img/201108031_028" width="400" height="300" />
<img src="/data/img/201108031_032" width="500" height="400" />
...
END;
Run Code Online (Sandbox Code Playgroud)

我的尝试:

preg_match_all("/<img(.*?) \/>/",$images,$matches);
print_r($matches);
Run Code Online (Sandbox Code Playgroud)

php regex html-parsing

3
推荐指数
1
解决办法
598
查看次数

php - 正则表达式获取DIV标签中的内容

您好,感谢您查看我的问题.我需要从HTML片段中获取一些数据.这个源是一个受信任的/结构化的,所以我认为在这个HTML中使用正则表达式是可以的.我认为Dom和php中的其他高级功能是一种矫枉过正.

以下是HTML代码段的格式.

<div id="d-container">
  <div id="row-custom_1">
     <div class="label">Type</div>
     <div class="content">John Smith</div>
     <div class="clear"></div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在上面,请注意前2个DIV标签设置了ID.可能有几个row-custom_1像div标签,所以我需要逃避它们.

我的正则表达式实际上非常差,所以我期待你的帮助,从上面的html片段中抓住约翰史密斯.

它可能是这样的

<div * id="row-custom_1" * > * <div * class="content" * >GRAB THIS </div>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在正则表达式中做到这一点.约翰史密斯部分肯定不会包含任何HTML.它来自一个值得信赖的来源,它会删除所有html并以上述格式提供数据.

我可以理解正则表达式无论如何都不是处理HTML的好主意.非常感谢你的帮助.

30分钟后编辑:很多很棒的人建议使用HTML解析器,所以我做了; 像魅力一样工作.因此,如果有人带着类似的问题来到这里,作为愚蠢的问题作者,我建议使用DOM来完成工作.

html php

3
推荐指数
1
解决办法
949
查看次数

发现PHP错误的PHP正则表达式

我想要可以在页面上找到错误的PHP正则表达式.因此,当我访问网站并抓取页面时,我可以列出网站上的错误.

目前我有以下代码:

preg_match('/<b>.+<\/b>:.+ in <b>\/.+<\/b> on line <b>[0-9]+<\/b><br( \/)?>/msi',$html,$errors);
Run Code Online (Sandbox Code Playgroud)

它可以显示错误是否发生,但不会列出它们!我在数组中获得完整的html页面($errors[0])

有人可以帮忙吗?

编辑:所以我有一个页面,例如以下HTML源代码,我想从中提取PHP错误:

<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 in <b>/home/.../public_html/articlescript/init.php</b> on line <b>127</b><br />
<br />
<b>Warning</b>:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/.../public_html/articlescript/init.php:127) in <b>/home/.../public_html/articlescript/init.php</b> on line <b>127</b><br />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title>...
Run Code Online (Sandbox Code Playgroud)

php regex

2
推荐指数
1
解决办法
280
查看次数

替换HTML图像的标题

我试图找出如何title="Title is here"在PHP中替换图像的标题部分(),但我不能让它工作,所以有人可以帮忙吗?

标题可以是字面上的任何东西,所以我需要找到title"{anything here}"并替换它(如下所示).

我正在向我们努力preg_replace(),但如果有更好的方法,我愿意接受建议.

我尝试了几种不同的变化,但我认为这并不是太远了 -

$pattern = '#^title="([a-zA-Z0-9])"$#';
$replacement = 'title="Visit the '.$service['title'].' page';
$service_image = preg_replace($pattern, $replacement, $service_image);
Run Code Online (Sandbox Code Playgroud)

php regex image title

2
推荐指数
1
解决办法
755
查看次数