У меня данные номера телефона начинаются с +63 и 09
например, пользователь вставляет 09123456789, затем сохраняет. Пользователь не должен добиться успеха, если введет +639123456789, потому что это был тот же самый номер.
Я пытался использовать substr_replace
$data3 = substr_replace("+63", "0",0, 3);
есть другой вариант? я думаю, что substr_replace будет иметь ошибку в будущем.
Спасибо
substr_replace, вероятно, более безопасный вариант, чем str_replaceЯ не вижу проблемы, которую вы пытаетесь решить. Как я вижу, этот вопрос не по теме SO. Хотя, вероятно, его можно было бы опубликовать на обзоре кода.
Эти вещи уже решены. Я бы предложил использовать международный тел-ввод на внешнем интерфейсе и libphonenumber-для-php на бэкэнде.






Если +63 должен быть в начале, вы можете поставить лайк preg_replace
$s = preg_replace('~^\+63~', '0', $s);
Здесь,
^ - начало позиции строки\+ - буквальное +63 - подстрока 63.См. демонстрация регулярных выражений и демонстрация PHP.
Пожалуйста, также рассмотретьпредложение Тпойки используйте комбинацию международный тел-ввод на интерфейсе и libphonenumber-для-php на сервере, если вам нужно очистить и проверить международные телефонные номера.
В этом случае вы можете проверить условие и получить str_replace
если в вашем запросе есть +, удалите первые 3 буквы, включая +
if (substr($phone, 0, 1) == '+') {
$phone = str_replace(substr($phone, 0, 3), '0', $phone);
}
$phone_number = $phone;
попробуй
str_replace('+63','0')