Добрый день, Урывок рабочего кода: PHP: $fp = fsockopen($whois, 43); fputs($fp, "$domain\r\n"); $str = ""; while(!feof($fp)) { $str .= fgets($fp,128); $buffer = fgets($fp, 1024); [B]echo "{$buffer}";[/B] } fclose($fp); Вопрос №1. Почему, если я снимаю строку кода echo "{$buffer}"; с предыдущего кода и встравляю ее в продолжение далее: PHP: // если в ответе имеется фраза-отказ, домен не // зарегистрирован, если такой фразы нет - // следовательно домен зарегистрирован if(!preg_match("/".$not_found_string."/is", $str)) { echo "Домен зайнятий"; [B}print $buffer;[/B] } else { echo "Домен вільний <br/>"; }[/SIZE] то ответ на выводится? Вопрос №2. Я получаю ответ сервера в виде строки Как ее сделать более читабильной. Хотя бы пока речь не идет о полной информации, а только о ентерах, например посмотрите "http://imena.ua/whois.php?domain=domenforum.com.ua". Whois, проверка доменов.
Для начала осмотреть каким образом отдает результат команда whois Затем немного подумав добавить < /br> А только после этого понять ,что в первом случае в цикле выводит построчно результат чтения, а во втором он что должен вывести?
подозреваю по поводу первого, что.... PHP: $fp = fsockopen($whois, 43); fputs($fp, "$domain\r\n"); $str = ""; while(!feof($fp)) { $str .= fgets($fp,128); $buffer = fgets($fp, 1024); $buffer = str_replace("\r\n", "<br>", $buffer); [B]echo "{$buffer}";[/B] } fclose($fp);
Да, я нашел. Спасибо. Это правильно. Остается вопрос номер II. Я повторю смысл. Whois, проверка домена Добрый день, Урывок чернового варианта: PHP: $fp = fsockopen($whois, 43); fputs($fp, "$domain\r\n"); $str = ""; while(!feof($fp)) { $str .= fgets($fp,128); $buffer = fgets($fp, 1024); [B]echo "{$buffer}";[/B] } fclose($fp); Вопрос. Почему, если я снимаю строку echo "{$buffer}"; и встравляю в продолжение, за циклом: PHP: if(!preg_match("/".$not_found_string."/is", $str)) { echo "Домен зайнятий"; [B}print $buffer;[/B] } else { echo "Домен вільний <br/>"; } ответ сервера на выводится?
У тебя в цикле в переменную $buffer заносятся строки, полученые fgets Соответственно, по завершению цикла в переменной $buffer будет последнее полученое значение. В твоем случае это пустая строка. Исправь PHP: while(!feof($fp)) { $str .= fgets($fp,128); $buffer = fgets($fp, 1024); [B]echo "{$buffer}";[/B] } на PHP: while(!feof($fp)) { $str .= fgets($fp,128); $buffer[] = fgets($fp, 1024); print_r($buffer); } и ты увидишь в чем твоя ошибка