Номера телефонов США - установите для кода города и префикса только переменные - PullRequest
0 голосов
/ 22 мая 2011

У меня вопрос по поводу нахождения символов (в моем случае - цифр) только в середине или в начале строки.

Я работаю с 10-значными номерами телефонов в США, и я хотел бы сохранить код города и префикс номера телефона в двух отдельных переменных. Пока я просто повторяю их, потому что не могу заставить его работать правильно, но позже я буду искать в базе данных, используя переменные, чтобы определить поставщика телефонных услуг.

Мне нужно иметь возможность вырезать и вставлять список телефонных номеров, не вводя их все. Я использую текстовую область для этого, и вот что у меня сейчас:

<?php
if (isset($_POST['submit'])) {

$fullnumber = trim($_POST['numbers']);
$onenumber = explode("\n", $fullnumber);

foreach ($onenumber as $line) {

$area = substr("$line", 0, -7);  // returns the first three numbers of the phone number
$prefix = substr("$line", 3, -4);  // returns the 3rd, 4th and 5th digit of the phone number

echo "Area code: " .$area;
echo "<br />";
echo "Prefix: " .$prefix;
echo "<br />";
}

}
else
{
?>
<html>
<head>
<title>Phone Verification</title>
</head>
<body>
<br />
<form method="post" action="<?php echo $PHP_SELF;?>">
Enter Phone Numbers:<br />
<textarea rows="20" cols="10" name="numbers" wrap="physical"></textarea>
<input type="submit" value="submit" name="submit">
</form>
<?php
}
?>

То, что происходит, состоит в том, что телефонные номера будут иметь 4-значный код города и 4-значный префикс, за исключением последнего, который будет отображаться правильно с 3 цифрами для кода города и префикса.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 22 мая 2011

строка substr (строка $ string, int $ start [, int $ length]) Параметры: начало, длина (остановка). Предполагая, что у вас есть номер без пробелов или дополнительных символов, таких как 5553332222 изменить это

$area = substr("$line", 0, -7);  
$prefix = substr("$line", 3, -4);

к этому

$area = substr("$line", 0, 3); // start at 0, go 3  (555)
$prefix = substr("$line", 3, 3); // start at 3 go 3 (333)
0 голосов
/ 22 мая 2011

Попробуйте explode на \r\n, а не просто \n - я предполагаю, что ваши данные включают в себя возврат каретки, а также перевод строки, который искажает ваши подстроки.

...