2012-02-28 2 views
3

Я использую libphonenumber для преобразования чисел в дружественные местные телефонные номераlibphonenumber php use

например. если введен 19311234567, он возвращает (931) 123 4567

Я нашел версию php libphonenumber здесь: https://github.com/davideme/libphonenumber-for-PHP, но я не могу понять, как использовать его для получения того, что мне нужно.

Так мне интересно, если кто-нибудь знает, что звонит мне нужно сделать к нему для того, чтобы получить номер телефона конвертированы

+2

вы когда-нибудь получить эту библиотеку, чтобы работать правильно? У меня возникли проблемы с тем, что я сам собираюсь. – ackerchez

+1

FYI: эта библиотека не поддерживает некоторые страны, http://phpinterviewquestions.co.in/blog/ionic/googles-libphonenumber-library-supported-country-list –

ответ

2

С фактической реализации можно форматировать с помощью следующего кода.

$phoneNumberUtil = PhoneNumberUtil::getInstance(); 
$exampleNumber = new PhoneNumber(); 
$exampleNumber->setCountryCode(1)->setNationalNumber(9311234567); 
var_dump($phoneNumberUtil->format($exampleNumber, PhoneNumberFormat::INTERNATIONAL)); 
var_dump($phoneNumberUtil->format($exampleNumber, PhoneNumberFormat::NATIONAL)); 
var_dump($phoneNumberUtil->format($exampleNumber, PhoneNumberFormat::RFC3966)); 

Выход:

string(15) "+1 931 123 4567" 
string(12) "931 123 4567" 
string(15) "+1-931-123-4567" 

rawInput и свободный формат еще не реализован в PHP версии, но API будет похож на JAVA один.

+0

Благодарим вас за ответ, У меня все еще есть трудности с это, я думаю, это связано с тем, что я пытаюсь заставить его работать в плоской настройке PHP, а не на основе объекта? Когда я скопировал ваш код, после включения phonenumberutil, regioncode, phonenumber, countrycodetoregioncodemap, я получаю сообщение об ошибке «Использование $ this, если не контекст объекта» У вас есть полный рабочий пример, я посмотрел тест но он, похоже, тоже не работает, что дает ошибку «PHPUnti_Framework_Testcase не найден» Так что я немного в тупике. Ваша помощь очень ценится. –

+0

Для запуска тестов вам необходимо настроить PHPUnit. Можете ли вы отправить мне один из тестовых примеров, и я его отлажу. –

+0

' setCountryCode (1) -> setNationalNumber (9311234567); var_dump ($ this-> phoneUtil-> format ($ exampleNumber, PhoneNumberFormat :: INTERNATIONAL)); var_dump ($ this-> phoneUtil-> format ($ exampleNumber, PhoneNumberFormat :: NATIONAL)); var_dump ($ this-> phoneUtil-> format ($ exampleNumber, PhoneNumberFormat :: RFC3966)); ?> ' –

1

Я разработал API Services, который фактически является оберткой libphonenumber.

Вы можете получить Национальный Формат Номер телефона:

curl http://phonenumber.ones-app.com/national-format?number=19311234567 

(931) 123-4567 

Для получения полной справки: http://blog.ones-app.com/ones-phone-number-api/