草庐IT

PHP 使用 DOM 解析器获取自定义属性值

我使用simpledomparser做一些报废但未能获得自定义属性(颜色)。我能够获得其他值,例如h3的内部文本。我的dom很简单,看起来像这样HiHi2Hi3到目前为止我的代码$dom=$html->find('article');$arr=array();foreach($domas$data){if(isset($data->find('h3',0)->plaintext)){$h3=$data->find(h3',0)->plaintext;}}$arr[]=array("title"=>$h3,/*"color"=>$color*/);echojson_encode(arra

PHP 简单 html DOM 从 html 标签中删除所有属性

$html=file_get_html('page.php');foreach($html->find('p')as$tag_name){$attr=substr($tag_name->outertext,2,strpos($tag_name->outertext,">")-2);$tag_name->outertext=str_replace($attr,"",$tag_name->outertext);}echo$html->innertext;以上是我编写的代码,用于获取所有中的内容我的html页面中的标记并删除它们。我的html代码与此类似:sometext...sometex

PHP DOM 解析器移动关闭 Div 标记

这是我的代码:$myHtml='texttext';$doc=new\DOMDocument();$doc->loadHTML($myHtml,LIBXML_HTML_NOIMPLIED|LIBXML_HTML_NODEFDTD);$xpath=new\DOMXPath($doc);$anchors=$xpath->query("//a[@title='somethingsomething']");$list=$xpath->query("//ul[@class='some-class']")[0];foreach($anchorsas$a){$list->removeChild($a

PHP Simple HTML DOM Parser 不处理无效的 HTML - 在第一次试用时卡住了

我正在尝试使用PHPSimpleHTMLDOMParser绝对没有运气。我的例子很简单,似乎符合手册中给出的例子(simplehtmldom.sourceforgeATnet/manual.htm)但它只是行不通,这让我难以自拔。使用简单dom给出的其他示例脚本工作正常。参见示例:linktext这是我找到的最简单的示例...如何解析它?我应该用Perl来做吗?示例HTML页面是无效的HTML。我不知道SimpleHTMLDOMParser是否能够处理格式错误的HTML(可能不是)。好吧:如果我无法让它运行,我可以尝试一些Perl解析器,例如HTML::TreeBuilder::XPa

php - 基于 DOM 的 XSS 攻击和 InnerHTML

如何保护以下基于DOM的XSS攻击?具体来说,是否有一个protect()函数可以使下面的内容安全?如果不是,那么还有其他解决方案吗?例如:给div一个id,然后为元素分配一个onclick处理程序varxss="";$("#mydiv").html("")我希望得到的答案不是“避免使用innerHTML”或“将xss变量正则表达式为[a-zA-Z0-9]”...即:是否有更通用的解决方案?谢谢 最佳答案 扩展Vineet的回复,这里有一组要研究的测试用例:http://ha.ckers.org/xss.html

带有变量的PHP简单html dom解析器div id

我是PHP新手,遇到了一些小问题。如何使用简单的htmldom解析器搜索变量?我的id是“ti”,有几个同名的div。我只需要第一个。如果我把ti而不是$variable放到代码中,代码就可以工作。谢谢!find('div[id=$variable]',0);if($ret){echo$ret->innertext;}?> 最佳答案 您需要使用双引号(即"而不是')在PHP字符串中嵌入变量,如下所示:$ret=$html->find("div[id=$variable]",0); 关于带

php - 使用 PHP 简单 DOM 解析器查找直接后代

我希望能够做相当于$html->find("#foo>ul")但是PHP简单DOM库无法识别“直接后代”选择器>所以找到所有#foo下的项目包括嵌套在dom中更深的那些。作为获取特定类型的直接后代的最佳方法,您会推荐什么? 最佳答案 您可以使用DomElementFilter在某个Dom分支下获取所需类型的节点。此处对此进行了描述:PHPDOM:Howtogetchildelementsbytagnameinanelegantmanner?或者对所有子节点做一个常规循环,然后自己根据它们的标签名进行过滤:foreach($paren

javascript - foreach 中的 DomDocument removeChild 重新索引 dom

我正在尝试删除具有data-spotid属性的p标签$dom=newDOMDocument();@$dom->loadHTML($description);$pTag=$dom->getElementsByTagName('p');foreach($pTagas$value){/**@varDOMElement$value*/$id=$value->getAttribute('data-spotid');if($id){$value->parentNode->removeChild($value);}}但是当我删除子项时,它正在重新索引dom。假设我删除了8个项目,第一个将对其重新编制

PHP 7.2 和模块 'dom' 、 'mbstring' 和 'simplexml'

我在我的服务器上安装了PHP7.2,除了这三个问题外一切正常:我面临这些问题:ThePHPextensiondomisnotloaded.Pleasecontactyourserveradministratororvisithttp://php.net/manual/en/dom.installation.phpforinstallation.PHPextensionmbstringisnotloaded.Pleasecontactyourserveradministratororvisithttp://php.net/manual/en/mbstring.installation.p

php - (PHP5) 使用 PHP DOM 或正则表达式从 HTML 中提取标题标签和 RSS 提要地址

我想从给定的URL获取标题标签和RSS提要地址(如果有的话),但我目前使用的方法根本不起作用。我已经通过使用preg_match和正则表达式设法获得了标题标签,但我似乎无法获得RSS提要地址。($webContent保存网站的HTML)我已经在下面复制了我的代码以供引用...`//获取标题标签preg_match('@(.*)@i',$webContent,$titleTagArray);//Ifthetitletaghasbeenfound,assignittoavariableif($titleTagArray&&$titleTagArray[3])$webTitle=$title