2013-06-28 104 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 
相关问题