Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   бесконечный цикл. Функция не возвращает FALSE ? (http://forum.oszone.net/showthread.php?t=53987)

xamelion 19-09-2005 07:44 356446

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

$ip = "192.168.55.250";

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

почему заклинило ?
насколько я понимаю функция sscanf() должна выдать false в конечном итоге и цикл должен приостановится. Значит я ниправильно задал значении функции.
\x2E = ansii формат точки, проверить можно
Код:

echo "\x2E";

Vlad Drakula 19-09-2005 09:13 356462

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

$ip = "192.168.55.250";

$ipinfo = split($ip, "."))
list ($ip1, $ip2, $ip3, $ip4) = $ipinfo;
echo "$ip1<BR>$ip2<BR>$ip3<BR>$ip4<BR>";

Цитата:

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

aESThete 19-09-2005 09:20 356464

Хм... имхо (по аналогии с C++) sscanf только читает из строки, а саму ее не меняет, т.е. каждый раз у вас заново читается.
А без цикла прочитать сразу все переменные конструкцией вида
sscanf($ip, "%d\x2E%d\x2E%d\x2E%d", $ip1, $ip2, $ip3, $ip4)
не получается?

Vlad Drakula 19-09-2005 09:51 356473

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

aESThete 19-09-2005 10:37 356482

Vlad Drakula
Спасибо за поправку насчет передачи адресом (практики давно нет, подзабываю элементарщину).
Вот еще: меня смущает применение "%d" для чтения в строку.

xamelion 19-09-2005 14:21 356564

Ну что я могу сказать, ну признаюсь, чайник я, ну учусь я писать, все кто помогли мне вырожаю огромное спасибо.
Учение дело тяжелое, я вот в 4 строках делаю ошибку, да так что пофиксить никто не может....
http://forum.oszone.net/showthread.p...562#post356562
Vlad Drakula
спасибо за компактный код.


Время: 05:25.

Время: 05:25.
© OSzone.net 2001-