不确定如何完成,但如何在回显db的结果之前编辑字符串中的url?
基本上是:
来自db的字符串:
你好,我是特里。我喜欢使用<a href="http://www.twitter.com">Twitter</a>
,但我更喜欢使用<a href="http://www.facebook.com">Facebook</a>
。我喜欢在<a href="http://www.mycoolsite.com">My Cool Site</a>
的网站上发布博客,我喜欢体育运动。
但我想回应一下:
你好,我是特里。我喜欢使用<a href="http://www.somepage.com/home?url=http://www.twitter.com">Twitter</a>
,但我更喜欢使用<a href="http://www.somepage.com/home?url=http://www.facebook.com">Facebook</a>
。我喜欢在<a href="http://www.somepage.com/home?url=http://www.mycoolsite.com">My Cool Site</a>
的网站上发布博客,我喜欢体育运动。
例如:用http://www.twitter.com
http://www.somepage.com/home?url=http://www.twitter.com
答案 0 :(得分:1)
$string="Hello, I am Terry. I like using <a href="http://www.somepage.com/home?url=http://www.twitter.com">Twitter</a>, but I prefer using <a href="http://www.somepage.com/home?url=http://www.facebook.com">Facebook</a>. I like posting blogs on my website at <a href="http://www.somepage.com/home?url=http://www.mycoolsite.com">My Cool Site</a>, and I enjoying playing sports."
preg_replace('/<a href="([^"]*)" >/','<a href="someurl?url=$1" >',$string)
答案 1 :(得分:1)
这就是你真正想要的,
<?php /** PHP, JavaScript and HTML/CSS mixed-code sample */
$string = 'Hello, I am Terry. I like using <a href="http://www.twitter.com">Twitter</a>, but I prefer using <a href="http://www.facebook.com">Facebook</a>. I like posting blogs on my website at <a href="http://www.mycoolsite.com">My Cool Site</a>, and I enjoying playing sports.';
$myurl = "http://www.somepage.com/home?url=";
$result = preg_replace('/(<a[^>]*href[\s]*=["|\'])(.*?["|\'])/', "$1$myurl$2", $string);
echo $result;
?>
您可以在phpfiddle.org上尝试使用该代码。如果你需要改变,请告诉我。
更新后的代码:
<?php
$string = 'Hello, I am Terry. I like using <a href="http://www.twitter.com">Twitter</a>, but I prefer using <a href="http://www.facebook.com">Facebook</a>. I like posting blogs on my website at <a href="http://www.mycoolsite.com">My Cool Site</a>, and I enjoying playing sports.';
$myurl = "http://www.somepage.com/home?url=";
preg_match_all('/(<a[^>]*href[\s]*=)["|\'](.*?)["|\']/', $string, $result, PREG_SET_ORDER);
for($i=0;$i<count($result);$i++){
$string = str_replace($result[$i][0], $result[$i][1] .'"'. $myurl . urlencode($result[$i][2]) .'"' ,$string);
}
?>
<!--<textarea><?php echo $string; ?></textarea>-->
<?php echo $string; ?>
答案 2 :(得分:0)
快速而肮脏的方式来完成它,
$new_string = str_replace('href="', 'href="http://www.somepage.com/home?url=', $old_string);