1

我有一个保存在数组 $phone 中的值,并且想要删除"Tel. "" - "。$phone 的原始值是"Tel. +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);
4

3 回答 3

3

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

而是在下一次调用中更改它

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

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

 $string = str_replace(array("Tel. ", " - "), "", $phone->textContent);
于 2013-10-14T00:57:58.993 回答
0

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

$temp = str_replace("Tel. ","",($phone->textContent);
echo "<br />". str_replace(" - ","",$temp));
于 2013-10-14T00:58:48.147 回答
0
echo preg_replace ("/^(.*)(?=\\+)(.*)$/", "$2", "Tel. +47 - 87654321" )

将输出:

+47 - 87654321

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

  1. 之前的所有字符+(使用前瞻)
  2. 之后的任何内容,+包括+

然后只用第二组替换它

于 2013-10-14T01:01:17.470 回答