我环顾了几个小时,但我发现的例子没有把我推到一个我可以从逻辑上拿出我需要的东西的地方所以我想我需要更具体的东西以适应我的无知并向我的书呆子哥哥寻求帮助。
问题:
1)我想用一些标记替换一个非常具体的url,但是使用id作为变量(如下例所示)。
2)我有一个文本解析器,我只希望它允许链接到我的域(目前尚未实现),任何其他链接将被删除(目前使用一些strpos / strip_tags动作实现)但我想使用preg_replace
允许指向我的域名的链接。
对于伪造的示例(使用url的部分作为var):
$markup = '[[-$0-]]';
$domain = 'mydomain.com';
$comment = 'This is my link example for http://mydomain.com/plan/43434 and Ii am confused';
$comment = preg_replace('&\bhttp://' . $mydomain . '/plan/(\d+)/"', $markup, $comment);
echo $comment:
期望的输出:
This is my link example for [[-43434-]] and I am confused
然后在执行此代码后,我会删除所有链接,但我的域名。我真的不确定怎么拉这个,但我可以用一些爱。
答案 0 :(得分:0)
这个正则表达式将:
http://mydomain.com/plan
开头,如示例文本正则表达式:((?:(?!http:\/\/mydomain\.com\/plan\/).)*)http:\/\/mydomain\.com\/plan\/(\S*)
替换为:$1[[-$2-]]
示例文字
This http://mydomain.com/plan/12345 is my link example for http://mydomain.com/plan/43434 and I am confused
<强>代码强>
<?php
$sourcestring="your source string";
echo preg_replace('/((?:(?!http:\/\/mydomain\.com\/plan\/).)*)http:\/\/mydomain.com\/plan\/(\S*)/mx','$1[[-$2-]]',$sourcestring);
?>
替换后的Sourcestring
This [[-12345-]] is my link example for [[-43434-]] and I am confused