-3

文字列の例で URL を変更するにはどうすればよいですか :

これはリンクです<a href="http://google.com.au">http://google.com.au</a>

このようなものに

これは警告ページのリンクです<a href="./warn.php?link=http://google.com.au">http://google.com.au</a>

編集:

私がやろうとしているのは、エンド ユーザーが入力した説明を取得することです。彼らは説明にリンクを入力する可能性があります。すべてのリンクを変更して、警告ページに移動したいのですが、警告ページは./warn.php?site=link

文字列は次のようになります

This is a awesome description <a href="google.com.au">Google</a> and this another link <a href="http://google.com.au/images">Google images</a>

これが私が試したことです:

$descc = mysql_real_escape_string($_POST['description']);

$descc = preg_replace('"\b(http://\S+)"', '<a href="./warn.php?site='.base64_encode(.'$1'.).'">$1</a>', $descc);
4

3 に答える 3

1

これを確認してください。あなたが本当にこれについて言及しているかどうかはわかりませんが、その場合は私に知らせてください ---

$mylink = "http://google.com.au";

This a warning page link <a href="./warn.php?link=<?php echo $mylink ?>">http://google.com.au</a>

バージョン 1.0 を編集

説明ボックスのデータであっても、jquery または php のように取得できます

$mylink = $_GET['desc_name_data']; 

問題をより具体的にしてください:)

バージョン 1.1 を編集

これを確認してから知らせてください --

echo preg_replace('(<a href="http://\S+)', '<a href="./warn.php?site='.'google.com.au'.'">google.com.au', $descc);
于 2012-08-24T11:44:40.093 に答える
0

あなたの質問を理解できるかどうかはわかりませんが、urlencodeが役立つかもしれません。

<a href="./warn.php?link=<?php echo urlencode('http://google.com.au'); ?>">http://google.com.au</a>

そうでない場合は、達成しようとしていることと試したことをもう少し具体的にしてください。

編集:

わかりました。HTMLパーサーを試してリンクからhrefを抽出し、適切に書き直すことができます。これは、正規表現よりも信頼性が高い可能性があります。

URLをクエリ文字列として渡す場合は、引き続きurlencodeを追加する必要があります。

于 2012-08-24T11:58:49.890 に答える
0

をご覧いただけますpreg_replace()

于 2012-08-24T11:43:58.133 に答える