在PHP中字符串结尾之前str_replace的正确方法是什么?

时间:2016-04-21 18:24:21

标签: php str-replace

如果我有这样的字符串:

<a href="http://example.com/myPDF.pdf" rel="">myPDF12345431234</a>

什么是对str_replace的正确PHP函数调用,以便“”rel = ....“之后的所有内容都替换为空/空白?

为了进一步说明,链接标记之间的值是动态的和未知的,所以我无法调用它。

我正在寻找类似的东西:

$oldstring = array('<a href="', '" rel="" *until the end_of_string* ');
$replacewith = array=('', '');

$newstring = str_replace($oldstring, $replacewith, $URL);

将URL后面的所有内容(引号直到字符串末尾)替换为什么都是正确的方法是什么?

3 个答案:

答案 0 :(得分:1)

这由正则表达式处理。以下内容取代了rel =&#34;&#34;到字符串的末尾。

$newstring = preg_replace('/ rel="".*$/','',$oldstring);

。*表示&#34;一切&#34;和$表示&#34;字符串结束&#34;。我在rel之前添加了一个空格,因为我认为你也想放弃它。

答案 1 :(得分:1)

使用preg_match:

preg_match("/(\<a href\=\\".*\\")\srel/", "<a href="http://example.com/myPDF.pdf" rel="">myPDF12345431234</a>", $output_array);
Var_dump($output_array);

http://www.phpliveregex.com/p/fqQ

答案 2 :(得分:0)

听起来您实际需要的是当前字符串的子字符串,直到rel属性结束。

$newstring = substr($oldstring, 0, strpos($oldstring, 'rel=""'));