Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? 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