相关疑难解决方法(0)

除了XHTML自包含标记之外,RegEx匹配开放标记

我需要匹配所有这些开始标记:

<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)

但不是这些:

<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)

我想出了这个,并希望确保我做对了.我只抓住了a-z.

<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)

我相信它说:

  • 找一个小于,然后
  • 然后,查找(并捕获)az一次或多次
  • 然后找到零个或多个空格
  • 找到任何字符零次或多次,贪婪/,然后
  • 找到一个大于

我有这个权利吗?更重要的是,你怎么看?

html regex xhtml

1323
推荐指数
36
解决办法
270万
查看次数

401
推荐指数
21
解决办法
18万
查看次数

怎么做正则表达式模式与字符串中的任何地方都不匹配?

我正在尝试<input>使用此模式匹配类型"隐藏"字段:

/<input type="hidden" name="([^"]*?)" value="([^"]*?)" />/
Run Code Online (Sandbox Code Playgroud)

这是示例表单数据:

<input type="hidden" name="SaveRequired" value="False" /><input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /><input type="hidden" name="__VIEWSTATE2" value="0351118MK" /><input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /><input type="hidden" name="__VIEWSTATE0" value="3" /><input type="hidden" name="__VIEWSTATE" value="" /><input type="hidden" name="__VIEWSTATE" value="" />
Run Code Online (Sandbox Code Playgroud)

但我不知道的type,namevalue属性将始终出现在相同的顺序.如果type属性是最后一个,则匹配将失败,因为在我的模式中,它在开始时.

问题:
如何更改模式以使其匹配,无论<input>标签中属性的位置如何?

PS:顺便说一下,我正在使用基于Adobe AirRegEx桌面工具来测试正则表达式.

html regex parsing

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

PHP的最佳XML解析器

我之前使用过XML Parser,虽然它工作正常,但我对它一般不满意,感觉就像我在使用基本功能的东西时使用变通方法.

我最近看过SimpleXML,但我还没有尝试过.它更简单吗?两者有哪些优点和缺点?你用过的其他任何解析器?

php xml parsing xml-parsing

145
推荐指数
5
解决办法
18万
查看次数

如何使用PHP从html中提取img src,title和alt?

我想创建一个页面,其中所有驻留在我网站上的图像都列有标题和替代表示.

我已经给我写了一个程序来查找和加载所有HTML文件,但现在我被困在如何提取src,titlealt从这个HTML:

<img src="/image/fluffybunny.jpg" title="Harvey the bunny" alt="a cute little fluffy bunny" />
Run Code Online (Sandbox Code Playgroud)

我想这应该用一些正则表达式完成,但由于标签的顺序可能会有所不同,而且我需要所有这些,我真的不知道如何以优雅的方式解析它(我可以通过char方式,但这很痛苦).

html php regex html-parsing html-content-extraction

143
推荐指数
7
解决办法
31万
查看次数

适用于PHP的健壮且成熟的HTML解析器

是否有适用于PHP的强大而成熟的HTML解析器?快速浏览PEAR并没有改变任何东西(很多类用于生成HTML,而不是用于消费),Google教会了我很多人已经开始然后放弃了各种解析器项目.

对XML解析器不感兴趣(除非那时可以使用非格式良好的HTML)或者使用正则表达式自己攻击它.

澄清意图:我对HTML内容的过滤不感兴趣,我很有兴趣从HTML文档中提取信息.

html php html-parsing

139
推荐指数
0
解决办法
5万
查看次数

抓取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万
查看次数

如何在PHP中创建一个简单的爬虫?

我有一个包含大量链接的网页.我想编写一个脚本,将脚本中包含的所有数据转储到本地文件中.

有人用PHP做过吗?一般准则和陷阱就足以作为答案.

php web-crawler

64
推荐指数
6
解决办法
16万
查看次数

参考:什么是使用MySQL扩展的完美代码示例?

这是为了创建社区学习资源.目标是获得良好代码的示例,这些代码不会重复在复制/粘贴的PHP代码中经常出现的可怕错误.我已经要求它成为社区维基.

不是一个编码竞赛.这不是要找到最快或最紧凑的查询方式 - 它是为新手提供一个好的,可读的参考.

每天都有大量的问题与使用Stack Overflow上的函数系列的非常糟糕的代码片段大量涌现mysql_*.虽然通常最好将这些人引向PDO,但它有时既不可能(例如继承的遗留软件)也不是现实的期望(用户已经在他们的项目中使用它).

使用该mysql_*库的代码的常见问题包括:

  • SQL注入值
  • LIMIT子句和动态表名中的SQL注入
  • 没有错误报告("为什么此查询不起作用?")
  • 报告错误报告(即,即使代码投入生产,也会发生错误)
  • 跨值脚本(XSS)注入值输出

让我们编写一个PHP代码示例,使用mySQL_*系列函数执行以下操作:

  • 接受两个POST值,id(数字)和name(一个字符串)
  • 对表执行UPDATE查询tablename,name使用ID 更改行中的列id
  • 失败时,请优雅退出,但仅在生产模式下显示详细错误.trigger_error()就足够了; 或者使用您选择的方法
  • 输出消息" $name已更新".

没有显示上面列出的任何弱点.

它应该尽可能简单.理想情况下,它不包含任何函数或类.目标不是创建一个复制/可粘贴的库,而是显示为使数据库查询安全所需要做的最少的事情.

好评如有好处.

目标是使这个问题成为用户在遇到问题提供者时可以链接到的资源(即使它根本不是问题的焦点),或者遇到错误的查询而不是知道如何解决它.

要抢先讨论PDO讨论:

是的,将这些问题的个人指向PDO往往更为可取.如果是一种选择,我们应该这样做.然而,这并不总是可能的 - 有时,提问者正在处理遗留代码,或者已经在这个库中走了很长一段路,并且现在不太可能改变它.此外,mysql_*如果正确使用,功能系列是完全安全的.所以请不要在这里"使用PDO".

php mysql security sql-injection

60
推荐指数
2
解决办法
2650
查看次数

如何用PHP解析HTML?

可能重复:
如何使用PHP解析和处理HTML?

建议参考问题.Stack Overflow每天都会有数十个"如何解析HTML"的问题.但是,由于大多数问题都涉及提问者提出的具体情况,因此很难将其复制.这个问题试图建立一个覆盖问题所有方面的通用"参考问题".

这是一个实验.如果这样的参考问题已经存在,请告诉我,我很乐意删除这个.

我理想的愿景是,三个问题中的每个问题都会得到单独回答,每个问题的最佳答案都会达到顶峰.

两周后,我将在三个类别中的每一个类别中获得200个赏金给予最佳答案, 等待关于Meta 的这个问题的讨论.

这些问题中的每一个都已经在其他地方得到了很好的回答,所以复制+粘贴你自己对不同问题的答案对我来说没问题.

如何用PHP解析HTML?

  1. 有什么图书馆?哪些使用PHP的本机DOM,哪些有自己的解析引擎?(提示:SimpleHTMLDOM)

    1A.我需要找到一个特定的元素,但我发现很难习惯XPath语法.是否有任何基于DOM的库使解析HTML更容易?请考虑制作通用的真实世界示例.

  2. 是否有一个PHP库,使我能够使用CSS [2/3]选择器查询DOM,就像jQuery一样?(提示:phpQuery)请考虑制作通用的真实世界示例.

  3. 奖金问题:为什么我不应该使用正则表达式?请以非专业人士的名义提供一个非常简短的答案.

html php regex html-parsing

56
推荐指数
0
解决办法
9341
查看次数