1

どうすればよいかわかりませんが、データベースから結果をエコーする前に、文字列内の 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例: href を次のように置き換えますhttp://www.somepage.com/home?url=http://www.twitter.com

4

3 に答える 3

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; ?>
于 2012-10-31T07:07:47.230 に答える
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)
于 2012-10-31T06:58:23.563 に答える
0

それを成し遂げるための迅速で汚い方法、

$new_string = str_replace('href="', 'href="http://www.somepage.com/home?url=', $old_string);
于 2012-10-31T06:57:30.530 に答える