php - 需要帮助使用 preg_match 修复数据库中文章中的链接

标签 php html mysql regex

我有一个文章数据库,其中包含大约 8,000 篇文章中的大约 4,000 个损坏的链接。这些损坏的链接中约有一半遵循某种模式,通过使用正确的 PHP 脚本,可以自动修复这些损坏的链接。

相关损坏的链接包含如下链接:

<a href="http://www.mydomain.tld/article1234-plus-a-slug-
that-varies-in-length.html">some text</a>

“1234”部分代表文章的唯一ID。它可以是 101 到 10700 之间的三到五位数字。该唯一 ID 的数据库记录包含该页面的正确 URL。

我需要识别每篇文章的 HTML 中符合此模式的字符串,提取 URL 的“1234”部分,将其分配给 $ 变量,然后将文章的 HTML 标记中的 URL 替换为该链接具有从该唯一 ID 的数据库中获取的正确 URL。

我怀疑 preg_match 是在这种情况下使用的合适函数,但我真的不知道如何构建 PHP 脚本。 (我的 PHP 技能不太好。我的正则表达式技能也不是很好。)任何人都可以帮助我使用一个简单的脚本来处理此任务吗?

最佳答案

$url = '<a href="http://www.mydomain.tld/article1234-plus-a-slug-
that-varies-in-length.html">some text</a>';

preg_match("#article([0-9]+)#i", $url , $urlmatches);

printf( 'id: %d' , (int) $urlmatches[1] );

关于php - 需要帮助使用 preg_match 修复数据库中文章中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808957/

相关文章:

mysql - 将 mssql 脚本转换为 mysql 更新表中的列以及其他表中的最新日期

php - 如何针对特定屏幕尺寸屏蔽某个网站?

php - Yii 2 : virtual fields in ActiveRecords

php - 将内爆数据与另一个内爆进行匹配

php - 多维数组有条件删除重复键值

python - python中的Xpath无法获取数据

html - 仅当有两个或更多元素时才使用 last-of-type

php - 填充从 PHP/MySQL 加载的 HTML 表单

mysql - 事件记录 : Invalid date when querying varchar

javascript - 删除 <div> 和 <p> 标签