Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我有一个文章数据库,其中包含大约8,000个文章中的4,000个断开的链接。这些断开的链接中大约有一半遵循一种模式,该模式具有正确的PHP脚本,可用于自动修复那些断开的链接。
有问题的断开的链接包含这样的链接:
“ 1234”部分代表文章的唯一ID。它可以是101到10700之间的三到五位数字。该唯一ID的数据库记录包含页面的正确URL。
我需要在每篇文章的HTML中标识适合此模式的字符串,提取URL的“ 1234”部分,将其分配给$ variable,然后将该文章的HTML标记中的URL替换为从数据库获取的唯一ID的正确URL。
我怀疑preg_match是在这种情况下使用的合适函数,但是我真的看不到如何构建PHP脚本。 (我的PHP技能不是很好。我的regex技能也不是。)有人可以用简单的脚本来帮助我完成此任务吗?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我有一个文章数据库,其中包含大约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”部分,将其分配给$ variable,然后将该文章的HTML标记中的URL替换为从数据库获取的唯一ID的正确URL。
我怀疑preg_match是在这种情况下使用的合适函数,但是我真的看不到如何构建PHP脚本。 (我的PHP技能不是很好。我的regex技能也不是。)有人可以用简单的脚本来帮助我完成此任务吗?
最佳答案
$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] );
09-19 13:34