Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP str_replace-过滤并从数组中删除2个单词?_Php - Fatal编程技术网

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

PHP str_replace-过滤并从数组中删除2个单词?,php,Php,我在数组$phone中保存了一个值,希望删除“Tel.”和“-”。$phone的原始值是“Tel.+47-87654321”,我希望它是“+4787654321” 到目前为止,我已经编写了以下代码: $phone = Tel. +47 - 87654321; echo "<br />" . str_replace("Tel. ","",($phone->textContent) . str_replace(" - ","",$phone->textContent));

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

到目前为止,我已经编写了以下代码:

$phone = Tel. +47 - 87654321;

echo "<br />"
. str_replace("Tel. ","",($phone->textContent)
. str_replace(" - ","",$phone->textContent));
$phone=电话+47-87654321;
回声“
” . str_replace(“电话”),($phone->textContent) .str_replace(“-”,“,$phone->textContent”);
这导致:

+47-87654321+4787654321

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

对我有效:

echo "<br />" . str_replace(array("Tel. ", " - "), "", $phone->textContent);
echo“
”。str_replace(数组(“电话”,“-”,“,$phone->textContent”);
不要连接两个函数的结果,因为它们在更改后返回整个字符串

而是在下次通话中更改它

 $string = str_replace("Tel. ", "", $phone->textContent);
 $string = str_replace(" - ", "", $string);
或者将项目数组传递给
str\u replace()


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

$temp = str_replace("Tel. ","",($phone->textContent);
echo "<br />". str_replace(" - ","",$temp));
$temp=str_replace(“电话”)、($phone->textContent);
echo“
”。str_replace(“-”,“,$temp”);
将输出:

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

  • +
    前面的所有字符(使用前瞻)
  • +
    后面的任何内容,包括
    +
  • 然后只替换为第二组

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