从某事开始删除字符串

时间:2013-06-28 20:09:50

标签: php regex

如何使用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); ;

但这不是我想要的。

3 个答案:

答案 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

答案 1 :(得分: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
  • .+匹配所有内容......
  • $ ...直到字符串结束。

所以在这里,我的替代人员说:用 nothing 替换以&yy开头直到字符串结尾的任何内容,这实际上只是删除了这部分。

答案 2 :(得分:0)

您是否总是期望最终部分具有'yy'变量名称?你可以试试这个:

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