如何在插入数据库之前根据第一个字母(表达式)修剪前三个字符

时间:2016-06-22 11:41:36

标签: php mysql

我的php文件

这是我从数据库中检索数据的代码。

这里我需要根据第一个表达式(+)删除前三个字符,然后是两个数字,即(91)。所以我需要删除数据库中包含+91的电话号码。 任何人都可以帮我这个。

    <?php
    session_start();


    $response = array();

    $con = mysqli_connect(HOST,USER,PASS,DB) or die('Unable to Connect');

    if(!mysqli_connect_errno()){

        $error_flag = false;

    $contacts = json_decode($_POST['contacts'], true);
    foreach($contacts as $contact){

            //$trimmed = $contact['phone'];

            //$title = str_replace("+91", "", trim($trimmed));
            // $prefix = '+91';
            // $str = $contact['phone'];
            // if (substr($str, 0, strlen($prefix)) == $prefix) 
            //     { echo $str = substr($str, strlen($prefix)); }


            $sql = "INSERT INTO contacts (vault_no , name, phone, created_at)
            VALUES ('".$contact['vault_no']."', '".$contact['name']."', REPLACE('".$contact['phone']."','+91',''), NOW())";

                if(mysqli_query($con,$sql)){

                    echo "Successfully Saved";

                }else{
                    $response["error"] = true;
                    $response["error_msg"] = "INSERT operation failed";
                    echo json_encode($response);
                }
                    //}
    }

    }else{
        $response["error"] = true;
        $response["error_msg"] = "Database connection failed";
        echo json_encode($response);
    }
?>

this is my contact list in database

4 个答案:

答案 0 :(得分:2)

您只需使用REPLACE()

即可
SELECT REPLACE(t.mobile,'+91','') as mobile
FROM YourTable t

或者如果您想在数据库中更改它:

UPDATE YourTable t
SET t.mobile = REPLACE(t.mobile,'+91','')

答案 1 :(得分:1)

使用substr()

删除它
$prefix = '+91';
$str = '+912345678765';// pass your mobile number here

if (substr($str, 0, strlen($prefix)) == $prefix) {
   echo $str = substr($str, strlen($prefix));
}

DEMO

答案 2 :(得分:1)

试试这个

$code = "+919000044440";
$number = preg_replace("/[^0-9]/","",$code);
$phone_number = substr($number,2);
echo $phone_number;

答案 3 :(得分:1)

PHP str_replace()适合您...

<?php 
$remove = '+91';
$phone_numbers = ['+919876543210','1234567890','+911234657899'];
foreach($phone_numbers as $number)
{
  echo str_replace($remove,'',$number)."\n";
}
?>

这将输出:

9876543210
1234567890
1234657899

<强> LIVE EXAMPLE