бесконечный цикл. Функция не возвращает FALSE ?

Ответить
Аватара пользователя
xamelion

бесконечный цикл. Функция не возвращает FALSE ?

Сообщение xamelion »

Код:

Код: Выделить всё

 $ip = "192.168.55.250";
while ($ipinfo = sscanf($ip, "%d\x2E%d\x2E%d\x2E%d")) {
list ($ip1, $ip2, $ip3, $ip4) = $ipinfo;
echo "$ip1
$ip2
$ip3
$ip4
";
};

почему заклинило ?

насколько я понимаю функция sscanf() должна выдать false в конечном итоге и цикл должен приостановится. Значит я ниправильно задал значении функции.

\x2E = ansii формат точки, проверить можно



Код:

Код: Выделить всё

 echo "\x2E";
Аватара пользователя
Vlad Drakula

Re: бесконечный цикл. Функция не возвращает FALSE ?

Сообщение Vlad Drakula »

xamelion

извеняюсь но то что вы написали это просто бред!



$ip = "192.168.55.250";



$ipinfo = split($ip, "."))

list ($ip1, $ip2, $ip3, $ip4) = $ipinfo;

echo "$ip1
$ip2
$ip3
$ip4
";




Цитата:



насколько я понимаю функция sscanf() должна выдать false в конечном итоге и цикл должен приостановится. Значит я ниправильно задал значении функции.



и почемуже sscanf() должна выдать false ???

в мануале о false ничего не сказано!
Аватара пользователя
aESThete

Re: бесконечный цикл. Функция не возвращает FALSE ?

Сообщение aESThete »

Хм... имхо (по аналогии с C++) sscanf только читает из строки, а саму ее не меняет, т.е. каждый раз у вас заново читается.

А без цикла прочитать сразу все переменные конструкцией вида

sscanf($ip, "%d\x2E%d\x2E%d\x2E%d", $ip1, $ip2, $ip3, $ip4)

не получается?
Аватара пользователя
Vlad Drakula

Re: бесконечный цикл. Функция не возвращает FALSE ?

Сообщение Vlad Drakula »

aESThete

sscanf($ip, "%d\x2E%d\x2E%d\x2E%d", &$ip1, &$ip2, &$ip3, &$ip4);
Аватара пользователя
aESThete

Re: бесконечный цикл. Функция не возвращает FALSE ?

Сообщение aESThete »

Vlad Drakula

Спасибо за поправку насчет передачи адресом (практики давно нет, подзабываю элементарщину).

Вот еще: меня смущает применение "%d" для чтения в строку.
Аватара пользователя
aESThete

Re: бесконечный цикл. Функция не возвращает FALSE ?

Сообщение aESThete »

Ну что я могу сказать, ну признаюсь, чайник я, ну учусь я писать, все кто помогли мне вырожаю огромное спасибо.

Учение дело тяжелое, я вот в 4 строках делаю ошибку, да так что пофиксить никто не может....

http://forum.oszone.net/showthread.p...562#post356562


Vlad Drakula

спасибо за компактный код.
Ответить

Вернуться в «Вебмастеру»