2013-06-28 144 views
1

我怎樣才能做到以下與PHP?刪除字符串開頭的東西

這是我的例子: http://www.example.com/index.php?&xx=okok&yy=no&bb=525252

我想刪除此部分:&yy=no&bb=525252

我只是想這樣的結果: http://www.example.com/index.php?&xx=okok

我嘗試這樣做:

$str = 'bla_string_bla_bla_bla'; 
echo preg_replace('/bla_/', '', $str, 1); ; 

但這不是我想要的。

+1

'str_replace函數( '&YY =無&BB = 525252', '',$ STR)'不工作? – user20232359723568423357842364

+1

使用'parse_url()'來提取query_string,然後你可以在'&explode()'上開始,並從數組或鍵值選項中提取你需要的內容。 – ludesign

+1

ludesign的建議可能是最好的。你真的想要依賴URL中的特定參數順序嗎? – Barmar

回答

1

去preg_replace是一個好的開始。但是你需要了解regexes

這將工作:

$str = 'http://www.example.com/index.php?&xx=okok&yy=no&bb=525252'; 
echo preg_replace ('/&yy.+$/', '', $str); 

這裏的正則表達式是&yy.+$

讓我們來看看它是如何工作:

  • &yy比賽&yy明顯
  • .+匹配一切...
  • $ ...直到字符串結尾。

所以在這裏,我說更換:更換任何通過&yy開始到字符串由什麼,這實際上是簡單地刪除這一部分結束。

+0

@WomarioSay如果這符合您的需求,不要忘記添加一個「接受」標誌。 – Jerska

+0

這不是我所需要的...我需要刪除所有其他文件 www.example.com/yyy/xxxxxx/blablbla.html 我希望得到如下結果:www.example.com/yyy/xxxxxx/ – bosslife

+0

@WomarioSay這不是你的問題。隨意張貼另一個,並考慮看看所有建議的工具,而不是等待別人給你答案。 (Regexes,parse_url,substring,explode) – Jerska

0

你是否總是希望末尾部分有'yy'變量名?你可以試試這個:

$str = 'http://www.example.com/index.php?&xx=okok&yy=no&bb=525252'; 
$ex = explode('&yy=', $str, 2); 
$firstPart = $ex[0]; 
2

你可以這樣做:

$a = 'http://www.example.com/index.php?&xx=okok&yy=no&bb=525252'; 

$b = substr($a,0,strpos($a,'&yy')); // Set in '&yy' the string to identify the beginning of the string to remove 

echo $b; // Will print http://www.example.com/index.php?&xx=okok 
相關問題