Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26

Построчный вывод php shell_exec

12.06.2013, 12:26. Показов 9881. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как организовать построчный вывод без буферизации например такого скрипта:
PHP
1
2
3
4
5
<?php
echo "<pre>";
$host = 'google.com';
echo "Full ping output:" . shell_exec('ping -c 4 ' . $host) . "\n</pre>";
?>
нужно чтоб выводилась каждая строка в момент ее исполнения а не как сейчас после ожидания исполнения всех 4х строк выводится весь аутпут.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.06.2013, 12:26
Ответы с готовыми решениями:

Вывод результатов shell_exec – кодировка, локали
Доброго времени суток! Функция shell_exec( ) позволяет выполнить команды оболочки операционной системы. В теме речь идёт о Windows 7,...

MySQLi shell_exec() error
Всем привет! На днях столкнулся с очень плохой проблемой. Мой PHP код на MySQLi для записи информации в базу данных на одном из...

Построчный вывод на экран.
Подскажите, пожалуйста, как правильно реализовать этот скрипт чтобы построчно выводил результат без буферации. &lt;?php ...

19
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
12.06.2013, 12:45
shell_exec возвращает результат выполнения - понимаешь смысл слов "результат выполнения"?
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 12:48  [ТС]
не вопрос можно через exec

Добавлено через 1 минуту
вообщем вопрос именно как сделать построчный вывод и не важно какох командой исполнения пользоваться, понимаю что может всетаке на аяксе но в нем познаний никаких
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
12.06.2013, 13:16
Походу ты хочешь сделать моментальный вывод данных на экран, не дожидаясь выполнения всего скрипта - запусти это, посмотри, такой эффект нужен?
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
header( 'Content-type: text/html; charset=utf-8' );
echo 'Begin ...<br />';
for( $i = 0 ; $i < 10 ; $i++ )
{
    echo $i . '<br />';
    flush();
    ob_flush();
    sleep(1);
}
echo 'End ...<br />';
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 13:59  [ТС]
не то мне нужно именно запуск пинга и как он на баше по строчно идет также его выводить.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.06.2013, 14:04
mishon32, ping выводит первую строку и ждет сколько-то там времени. Затем выводит еще строку и снова ждет. Т.е. он все это время запущен и выполняется.

shell_exec() ждет полного завершения программы и возвращает только полный результат. Так что shell_exec() тут точно не поможет.

Добавлено через 1 минуту
Разве что отдельно запускать ping несколько раз и каждый раз получать только одну строку.
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 14:05  [ТС]
так а помогите яже написал мне не принципиально что использовать можно exec() system() не важно главное цтоб выводилось без буферизации а именно помере проверки как на баше так и в браузере, как здесь http://ping.eu/ping/
Спасибо.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.06.2013, 14:08
Цитата Сообщение от mishon32 Посмотреть сообщение
так а помогите яже написал мне не принципиально что использовать можно exec() system()
Вы не поняли. Дело не в конкретной функции. Не будет PHP дальше выполнять скрипт, пока не дождется завершения той проги и не получит её результат.

Добавлено через 1 минуту
popen()
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 14:12  [ТС]
ну я понимаю что может аякс нужно задействовать как это сделать? помогите пожалуйста

Добавлено через 2 минуты
сделал так:
PHP
1
2
3
4
5
6
7
8
9
10
<?php
error_reporting(E_ALL);
 
/* Добавляем перенаправление, чтобы прочитать stderr. */
$handle = popen('ping -c 3 ' . $host, 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

получаю в браузере:
HTML5
1
'Resource id #2'; resource
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.06.2013, 14:16
PHP
1
2
3
4
5
6
$p = popen("ping -c 3 127.0.0.1", "r") or die("!popen\n");
while (!feof($p)) {
    var_dump(fgets($p));
}
pclose($p);
echo "done.\n";
Добавлено через 48 секунд
См. также flush()
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 14:16  [ТС]
выдает все сразу не по шагово по мере выполнения
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.06.2013, 14:18
Да даже если Вы будете использовать flush(), браузер имеет право не рендерить полученный ответ сразу же по мере получения очередного куска.
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 14:20  [ТС]
а как сделать вывод именно как здесь http://ping.eu/ping/ ??
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
12.06.2013, 14:22
Цитата Сообщение от mishon32 Посмотреть сообщение
а как сделать вывод именно как здесь
Используйте отладчик в браузере, вкладке "Сеть/Network":
HTML5
1
2
3
4
5
6
7
8
9
10
11
<script>
var RESULTS = top.document.getElementById( "results" );
RESULTS.innerHTML = "";
</script>
        <script>
        RESULTS.innerHTML += "<span class=\"t1\">--- PING google.ru (195.122.16.24) 56(84) bytes of data. ---</span><br>";
        </script>
        <script>
        RESULTS.innerHTML += "64 bytes from 195.122.16.24: icmp_req=1 ttl=56 time=<span class=\"t2\">38.2</span> ms<br>";
        </script>
...
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 15:11  [ТС]
решил проблему так
PHP
1
2
3
4
5
6
7
<?php
ob_implicit_flush(true);
ob_end_flush();
echo "<pre>";
system('ping -c 4 www.google.com');
echo "</pre>";
?>
никаких настроек в браузере ненужно делать.
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
12.06.2013, 17:11
Цитата Сообщение от mishon32 Посмотреть сообщение
решил проблему так
И что, висит 4 секунды до получения результата...
0
0 / 0 / 0
Регистрация: 27.08.2012
Сообщений: 26
12.06.2013, 17:36  [ТС]
нет, выдает все по мере выполнения по строчно как в баше.

Добавлено через 3 минуты
нужно в пхп.ини только врубить implicit_flush он
0
 Аватар для crautcher
2450 / 2301 / 597
Регистрация: 27.05.2011
Сообщений: 7,845
12.06.2013, 17:37
У меня на убунте в хроме висит 4 секунды

Добавлено через 43 секунды
Цитата Сообщение от mishon32 Посмотреть сообщение
нужно в пхп.ини только врубить implicit_flush он
а вот в чем дело
0
0 / 0 / 0
Регистрация: 28.04.2015
Сообщений: 1
28.04.2015, 13:58
Возможно Вам поможет эта статья
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
28.04.2015, 17:41
Цитата Сообщение от ИшТы Посмотреть сообщение
Возможно Вам поможет эта статья

Не по теме:

Возможно Вам стоит смотреть на дату создания темы...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2015, 17:41
Помогаю со студенческими работами здесь

Построчный вывод данных из куков
Привет всем, у меня есть текст в куках как мне брать из него по одной строчке и выводить ее например в другом месте там for или еще что...

Shell_exec(). Обработка результата функции
Привет ! Нужно скомпилировать срр исходник (р.срр) средствами gcc. Делаю так $flag = shell_exec('g++ p.cpp'); if($flag)...

Использование shell_exec() в ubuntu 10.04 (не работает, нужен совет)
И снова вынужден обратиться за помощью: server apache2, php5, на базе ubuntu 10.04 необходимо выполнить консольную команду. использую...

Вывод данных из нескольких таблиц - SQL, (PHP) - PHP
Помогите, пожалуйста:( Выдает ошибку: Column 'title' in field list is ambiguous Структура таблиц следующая: VEGETABLES id...

PDO::lastInsertId и shell_exec()
во время исполнения кода $uId = $pdo-&gt;lastInsertId(`user`); мне прилетает предупреждение &quot;Warning: shell_exec() has been disabled for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru