Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用正则表达式检测dofollow反向链接_Php_Regex - Fatal编程技术网

Php 使用正则表达式检测dofollow反向链接

Php 使用正则表达式检测dofollow反向链接,php,regex,Php,Regex,此正则表达式的目标是查找网页是否包含指向给定域的反向链接,并且所有这些链接都必须在标记上具有rel=“nofollow”属性。如果满足此条件,则为True;如果任何不包含rel=“nofollow”,则为False 在任何网页上,我都想检查是否存在类似的内容: <a ... href="http://www.mysite.com/xyz...." ... > 。这个练习是每个网站管理员必须在一个月左右为每个网站。我负担不起这种付费服务:www.linkdetock.com首先,不要

此正则表达式的目标是查找网页是否包含指向给定域的反向链接,并且所有这些链接都必须在标记上具有rel=“nofollow”属性。如果满足此条件,则为True;如果任何不包含rel=“nofollow”,则为False

在任何网页上,我都想检查是否存在类似的内容:

<a ... href="http://www.mysite.com/xyz...." ... >

。这个练习是每个网站管理员必须在一个月左右为每个网站。我负担不起这种付费服务:www.linkdetock.com

首先,不要使用正则表达式解析网页的dom。PHP拥有自己的文档对象模型,完成了整个工作。只要看一看和。

通常,用正则表达式解析HTML是个坏主意(下面是示例)。由于正则表达式无法完全解析HTML,您可能会遇到奇怪的错误

但是,如果您的输入是“安全的”(即没有太多变化,或者您准备好回答奇怪的错误),当您在
a
标签上时,您可以使用类似的内容来捕获与
href
的链接,而不必
rel=“nofollow”

#

免责声明

这并不是为了检查您的输入是否格式正确,而是假设它格式正确。这不能解释诸如转义的
或转义的引号之类的内容,您很可能需要根据自己的需要对其进行调整。基本上,没有正则表达式会给出完整的答案

如果您需要处理各种输入或可能存在格式错误的HTML,解析器将比正则表达式做得更安全、更好

然而,我把这个放在这里是为了让你了解在这个主题上可以做些什么,因为在非常严格和狭义的上下文中,正则表达式实际上可以是一个相关的解决方案。

正则表达式
如果你一直在阅读关于链接构建的任何内容,那么你可能见过有人提到nofollow和。当你为了提高你的搜索引擎排名而试图建立链接到你的网站时,这些都是非常重要的术语。但是,对于一个对这一切都不熟悉的人来说,这可能有点让人困惑。我会帮你把它拆了


要让蜘蛛抓取链接,你不必做任何事情。只要使用上面显示的格式,爬行器就会抓取提供的链接。

dom是否有效并不重要。DomDocument::loadHTMLFile()不关心html格式是否正确。它会尝试回溯并在出现错误时更正。这种回溯和更正智能对于搜索引擎来说肯定是不同的。“我不想解析DOM,因为由于解析错误而错过回溯链接是有风险的,谷歌的DOM解析器可能会有所不同。”–当你只进行字符串解析时,如果链接实际上不在文档中,而只是放在HTML注释或其他内容中,则更可能检测不到它。(谷歌正在关注那些试图建立愚蠢链接农场的人,就在最近,他们惩罚了两个大型的德国“搜索引擎优化”机构……因为你试图验证是否设置了反向链接,它闻起来很像是“强制”或付费的…)如果我的网站没有反向链接,我确实想打折这些URL。你们告诉我,你们有1000个网站的反向链接和十几个网站。我应该手动去看看它是否是垃圾邮件吗?当只有dofollow链接会招致惩罚时,我们应该只检查这些链接。我的工资是不付的。但现在网站所有者对反向链接的质量完全负责。此外,如果在评论中报告了反向链接,没有问题,无论是否在评论中,我都会手动检查此类链接。只有一条评论会浪费我的时间。想象一下,色情网站中丢失了一个链接。匹配
rel=nofollow href=”中的
http://www.mysite.com/“
。您应该尝试用
[^>]
替换您的
漂亮的捕获物。。。已编辑。nofollow rel介于“”(rel=“nofollow”)之间。正确答案是]*?rel=“nofollow”)(?=[^>]*?href=“http:\/\/www\.mysite\.com\/.?)[^>]*?>
<a(?=[^>]*?rel=nofollow)(?=[^>]*?href="http:\/\/www\.mysite\.com\/.*?")[^>]*?>