douqian1517 2013-03-07 16:38
浏览 32

为什么这个PHP语句出乎意料地剥离了7?

I would love a fresh pair of eyes looking at my problem which is driving me mad. Any help would be appreciated.

From just 2 lines of PHP code im trying to strip the first '44' if a user enters it at the start of there phone number:

    $telephone = '44789562356';
    $telephone = str_replace(' ','',$telephone);
    $telephone = str_replace('+44','0',$telephone);
if(strpos($telephone,"44")==0){
        $telephone = substr($telephone,2);
        $telephone = '0'.$telephone;
    }

Why is it that it strips '7's from all the phone numbers?

  • 写回答

1条回答 默认 最新

  • douju8113 2013-03-07 16:50
    关注

    Like Colin commented, you need to use a strict comparison === on the return from strpos() since it returns false if the substring is not found, and 0 if it's at the beginning of the string and false == 0 is true, and false === 0 is false.

    Alternatively, you can use regular expressions to specify matching only at the beginning of the string like so:

    if( preg_match('/^44/', $telephone) ) { ... }
    

    Or do the replacment with it:

    preg_replace('/^44/', '0', $telephone);
    

    Your code can be simplified to the following:

    $telephone = '+44-789 56-2356 ask for larry';
    $telephone = preg_replace('/[^0-9]/','',$telephone); // remove all non-numeric characters
    $telephone = preg_replace('/^44/','0',$telephone);
    echo $telephone;
    // output: 0789562356
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图