我使用 c 和 c# 进行编程,并且正在使用一些第三方正则表达式库来识别链接模式。但是昨天,由于某种原因,有人要求我改用 php。我不熟悉 php 正则表达式,但我尝试了,没有得到预期的结果。我必须提取并替换以下形式的图像 src 的链接:
<img src="/a/b/c/d/binary/capture.php?id=main:slave:demo.jpg"/>
我只想要 src 中的路径,但引号可以是双引号或单引号,id 也可以因情况而异(这里是 main:slave:demo.jpg)
我尝试以下代码
$searchfor = '/src="(.*?)binary\/capture.php?id=(.+?)"/';
$matches = array();
while ( preg_match($searchfor, $stringtoreplace, $matches) == 1 ) {
// here if mataches found, replace the source text and search again
$stringtoreplace= str_replace($matches, 'whatever', $stringtoreplace);
}
但它不起作用,我错过了什么或上面的代码有任何错误?
更具体地说,假设我有一个图像标签,它将 src 作为
<img src="ANY_THING/binary/capture.php?id=main:slave:demo.jpg"/>
这里 ANY_THING 可以是任何东西,并且“/binary/capture.php?id=”将在所有情况下固定,“id=”之后的字符串是模式“main:slave:demo.jpg”,冒号之前的字符串将是因情况而异,jpeg 的名称也会有所不同。我希望将其替换为
<img src="/main/slave/demo.jpg"/>
由于我只有在特定时间和限制时间内修改 php 脚本的权利,所以我想在进行任何修改之前调试我的代码。谢谢。