相关疑难解决方法(0)

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

抓取A元素的href属性

试图在页面上找到链接.

我的正则表达式是:

/<a\s[^>]*href=(\"\'??)([^\"\' >]*?)[^>]*>(.*)<\/a>/
Run Code Online (Sandbox Code Playgroud)

但似乎失败了

<a title="this" href="that">what?</a>
Run Code Online (Sandbox Code Playgroud)

我如何更改我的正则表达式来处理未首先放在标签中的href?

html php dom

113
推荐指数
3
解决办法
9万
查看次数

如何获得DOMNode的innerHTML?

在PHP DOM实现中,您使用什么函数来获取给定DOMNode的innerHTML?有人能给出可靠的解决方案

当然,outerHTML也会这样做.

php dom innerhtml

92
推荐指数
5
解决办法
8万
查看次数

如何通过Domdocument PHP获得第一级dom元素?

如何通过Domdocument PHP获得第一级dom元素?

代码不起作用的示例 - 来自问答:http://stackoverflow.com/questions/1540302/how-to-get-nodes-in-first-level-using-php-domdocument

<?php
$str=<<< EOD
<div id="header">
</div>
<div id="content">
    <div id="sidebar">
    </div>
    <div id="info">
    </div>
</div>
<div id="footer">
</div>
EOD;

$doc = new DOMDocument();
$doc->loadHTML($str);
$xpath = new DOMXpath($doc);
$entries = $xpath->query("/");
foreach ($entries as $entry) {
    var_dump($entry->firstChild->nodeValue);
}
?>
Run Code Online (Sandbox Code Playgroud)

谢谢你,约瑟夫

php xpath domdocument

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

如何通过索引获取PHP DOMDocument的子代

我想要一个PHP DOMDocument的孩子.假设我有一个这样的DOM文档:

<div>
   <h1 ></h1>
   <div id=2></div>
   <div class="test"></div>
...
</div>
Run Code Online (Sandbox Code Playgroud)

我有一个索引号3.然后我需要得到元素<div class="test"></div>.在DOMDocument API中,没有类似的方法children(3).在那儿?我怎样才能让一个有索引的孩子?

php dom

9
推荐指数
2
解决办法
3万
查看次数

PHP Dom Documents:获取textContent忽略脚本标记和注释

我使用dom doc从数据库加载html,如下所示:

$doc = new DOMDocument();
@$doc->loadHTML($data);
$doc->encoding = 'utf-8';
$doc->saveHTML();
Run Code Online (Sandbox Code Playgroud)

然后我通过这样做得到正文:

$bodyNodes = $doc->getElementsByTagName("body");
$words = htmlspecialchars($bodyNodes->item(0)->textContent);
Run Code Online (Sandbox Code Playgroud)

我得到的一切都包括在内<body>.类似的事情<scripts>也包括在内.我如何删除它们并仅保留真实文本内容?

php xml dom

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

使用DOMDocument创建复杂的结构

使用PHP和Dom Document创建复杂的XML结构时遇到了一些问题.

我希望结构是这样的:

<page PathToWeb="www.mysite.com">
    <Questions>
        <Question id="my id" member="true">
        <Question id="my id2" member="true">
        <Question id="my id3" member="true">
    </Questions>
</page>
Run Code Online (Sandbox Code Playgroud)

我到目前为止的代码是

<?php
/*Create DOM*/
$xml = new DOMDocument;
$xml->load('myxml.xml'); /* wich is just just blank <?xml?\> <page> </page>*/
$xpath = new DOMXPath($xml);

/*Set the base path*/
$hrefs = $xpath->evaluate("/page");

/*Add Path to web to the root /page*/
$href = $hrefs->item(0);
$href->setAttribute("PathToWeb",$PathToWeb);


/*Complex XML Creation with Xpath*/

/*ELEMENT APPEND (create questions into /page)*/
$href = $hrefs->item(0);
$element = $xml->createElement('Questions');
$href->appendChild($element);

/*XPATH …
Run Code Online (Sandbox Code Playgroud)

php xml xpath dom

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

PHP正则表达式匹配除某些src之外的所有img标记

我是PHP的新手,对用PHP编写的CMS中的某个文件进行了一些修改.我修改了一个<img>在页面源中获取第一个标记的函数,从该源获取随机标记.

用于匹配源的正则表达式是:

$regex = '/<' . $tag . '\\b[^>]*>/i';
Run Code Online (Sandbox Code Playgroud)

其中$tag只包含一个字符串img.

但是我注意到在源代码中有图像,其中src属性包含"1px.gif",我不想匹配这些.

目前我不断从匹配数组中重新选择一个随机元素,直到它不是1px.gif,但当然这是一个糟糕的解决方案.

我不能用正则表达式自己做这个,但我理解上面的正则表达式搜索<img和一个不是的单词字符>.我需要添加"并且不包含'1px.gif'".

我可以选择检查匹配数组并删除每个1px.gif的条目,但我更喜欢正则表达式.

php regex xpath html-parsing domdocument

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

标签 统计

php ×8

dom ×5

xml ×3

xpath ×3

domdocument ×2

html-parsing ×2

html ×1

innerhtml ×1

parsing ×1

regex ×1

xml-parsing ×1