0
<?php 

$url = "http://localhost/news&lang=en&lang=sk&lang=sk&lang=sk&lang=en";

$langs = array ('sk', 'en');

foreach ($langs as $lang) {
    $search = '&lang='.$lang;    
    $new = str_replace($search, "", $url);
}

echo $new; // output: http://localhost/news

?>

Q: string からすべてのパラメータ (&lang=en、&lang=sk) を削除するにはどうすればよいですか?

前もって感謝します

4

3 に答える 3

2

あなたがしているのは、$new毎回新しい変数を作成しているため、$url. str_replace次のように、 back を元の変数に割り当ててみてください。

$url = "http://localhost/news&lang=en&lang=sk&lang=sk&lang=sk&lang=en";

$langs = array ('sk', 'en');

foreach ($langs as $lang) {
    $search = '&lang='.$lang;    
    $url = str_replace($search, "", $url);
}

echo $url; // output: http://localhost/news
于 2013-08-11T18:52:43.470 に答える
0

代替案:

初め:

$url = "http://localhost/news&lang=en&lang=sk&lang=sk&lang=sk&lang=en";
echo preg_replace("#&lang=(en|sk)#", "", $url);

2番:

$url = "http://localhost/news&lang=en&lang=sk&lang=sk&lang=sk&lang=en";
echo str_replace(array("&lang=en", "&lang=sk"), "", $url);

更新: $lang の長い配列の場合:

$url = "http://localhost/news&lang=en&lang=sk&lang=sk&lang=sk&lang=en";
echo preg_replace("#&lang=(".implode("|", $lang).")#", "", $url);
于 2013-08-11T18:55:30.560 に答える