2011-07-13 9 views
0

hrefをpreg_replaceするときはどうすればよいですか?preg_replace内部リンク

$a = 'href="http://mysite.com/?s=Bananas&lang=en"'; 
$host = 'http://mysite.com'; 
$a = preg_replace('#href="'.$host.'\/?[(s|p)]=([.*?])&lang=([.*?])"#e','href="index.php#$1\/$2\\lang\/$3"',$a); 
//The result I want: 
echo $a; 
//Becomes href="http://mysite.com/#s/Bananas\\lang/en" 

何が間違っていますか? この正規表現構文は、これは私のために働くようだ...

+1

あなたが正確に何をしたいですか?あなたが望む出力を書いてください。 – Chintan

+0

これは 'href =" http://mysite.com/#s/Bananas\\lang/en "' – maxxie

+0

正規表現のパターンに 'e'(PREG_REPLACE_EVAL)修飾子を使わないでください。やっている... – binaryLV

答えて

0
<?php 
$a = 'href="http://mysite.com/?s=Bananas&lang=en"'; 
$host = 'http://mysite.com'; 
echo preg_replace('#href="'.preg_quote($host).'/\?(s|p)=(.*?)&lang=(.*?)"#','href="'.$host.'/#$1/$2\\\\\lang/$3"',$a); 
?> 

非常に困難である:)

関連する問題