【问题标题】:Replace certain characters with condition PHP用条件 PHP 替换某些字符
【发布时间】:2015-08-11 08:15:26
【问题描述】:

我正在用 PHP 做一些事情。我想根据满足的条件更改一些字符。我有一个循环通过一系列电话号码的循环。它可以获得的值有两种可能的格式,+447532221414447532221414。我想要做的只是将+4444 替换为0

所以我有这个检查

$sub = substr($row["phone"], 0, 3);
if($sub == "+44")
{
  $phone = str_replace("+44", "0", $row["phone"]);
}
else if(substr($row["phone"], 0, 2) == "44")
{
  $phone = str_replace("44", "0", $row["phone"]);
}

但我的问题是,当数字采用 447532221414 格式时,它不会将 44 更改为 0 代码有什么问题?还是有更好的方法?我的逻辑是否会影响最后两位数有44 的号码?例如。 447532221444

【问题讨论】:

  • 所有代码都可以替换为preg_replace('/^\\+?44/', '0', $row['phone'])regular-expressions.info – 只是说...
  • 你必须使用php函数preg_replace

标签: php string format substring


【解决方案1】:

你可以使用preg_replace:

$phone = "+447532221444";
$phone = preg_replace('/^\+?44/', '0', $phone);

var_dump($phone);

正则表达式的含义:

^ - 将强制解析器仅替换在字符串开头找到的匹配项

\+? - 将匹配 +,如果它存在,但如果 + 丢失,解析器将继续

【讨论】:

  • 即将发布相同的内容:) 稍微解释一下:P
  • 完美运行 :) 谢谢。将在计时器后选择此项。 :)
猜你喜欢
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-16
  • 2022-08-12
  • 2012-06-12
相关资源
最近更新 更多