PHP str_replace - 从数组中过滤并删除2个单词?

时间:2013-10-14 00:56:03

标签: php

我在数组$ phone中保存了一个值,想删除“电话”“ - ”。 $ phone的原始值是“电话+47-87654321”,我希望它是“+ 4787654321”

到目前为止,我已经制作了这段代码:

$phone = Tel. +47 - 87654321;

echo "<br />"
. str_replace("Tel. ","",($phone->textContent)
. str_replace(" - ","",$phone->textContent));

结果:

+47 - 87654321 + 4787654321

如何避免打印(回显)此代码的第一部分?这是一个更好的方法吗?

这对我有用:

echo "<br />" . str_replace(array("Tel. ", " - "), "", $phone->textContent);

3 个答案:

答案 0 :(得分:3)

不要连接两个函数的结果,因为它们在更改后返回整个字符串。

而是在下次通话中更改

 $string = str_replace("Tel. ", "", $phone->textContent);
 $string = str_replace(" - ", "", $string);

或将项目数组传递给str_replace()

 $string = str_replace(array("Tel. ", " - "), "", $phone->textContent);

答案 1 :(得分:0)

将中间结果分配给变量。尝试:

$temp = str_replace("Tel. ","",($phone->textContent);
echo "<br />". str_replace(" - ","",$temp));

答案 2 :(得分:0)

echo preg_replace ("/^(.*)(?=\\+)(.*)$/", "$2", "Tel. +47 - 87654321" )

将输出:

+47 - 87654321

说明:
它使用正则表达式将字符串分成两组:

  1. +(使用前瞻)
  2. 之前的所有字符
  3. +之后的任何内容,包括+
  4. 然后仅将其替换为第二组