Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как восстановить естественный порядок исполнения операторов echo ?
 
 автор: Владимир55   (04.01.2009 в 19:40)   письмо автору
 
 

Имеется код:
    echo '
    <table border="1" width="761" style="border-collapse: collapse" bordercolor="#0000FF" id="table1">
    <tr>
        <td align="center" width="124">Реклама</td>
        <td align="center" width="124">Показов</td>

    </tr>';
    flush();

    $dir = opendir ("rservis/.");
    readdir ($dir);
    readdir ($dir);
    while ( $file = readdir ($dir))
    {
        echo "$file<br>";
    }
    closedir ($dir);

При его исполнении прежде выводится результат работы while , а уж потом шапка таблицы. На всяктй случай ввел flush(), но и это не помогло.

Как управлять порядком вывода?

  Ответить  
 
 автор: mikha   (04.01.2009 в 20:01)   письмо автору
 
   для: Владимир55   (04.01.2009 в 19:40)
 

Попробуйте что то вроде
echo '<table border="1" width="761" style="border-collapse: collapse" bordercolor="#0000FF" id="table1"><tr><td align="center" width="124">Реклама</td><td align="center" width="124">Показов</td></tr>'; 
//flush(); 
$dir = opendir ("rservis/."); 
readdir ($dir); 
readdir ($dir); 
while ( $file = readdir ($dir)){ 
    //echo "$file<br>";
    echo "<tr><td colspan=\"2\">$file</td></tr>"; 

closedir ($dir);
echo "</table>";

Или как вам там надо.
Выводится у вас должно именно в том порядке как написано, другое дело $file вы выводите непонятно как. Оно не "вписывается" в таблицу. Но если заглянуть в результат выполнения скрипта (в html код), то увидите что всё выводится в нужном порядке.

  Ответить  
 
 автор: Trianon   (04.01.2009 в 20:01)   письмо автору
 
   для: Владимир55   (04.01.2009 в 19:40)
 

надо просто закрыть тег </table>

  Ответить  
 
 автор: Николай2357   (04.01.2009 в 20:02)   письмо автору
 
   для: Владимир55   (04.01.2009 в 19:40)
 

Проблема у Вас не в php, а в html. Таблица не закрыта, вот и скачет вниз. Кстати, a зачем вот это:
<?
    readdir 
($dir); 
    
readdir ($dir);

?
По моему так проще и быстрее:
<?
    
while ( $file readdir ($dir)) 
    {
        if(
$file != '.'&& $file != '..' )
        echo 
"$file<br>"
    } 

  Ответить  
 
 автор: Владимир55   (04.01.2009 в 20:21)   письмо автору
 
   для: Николай2357   (04.01.2009 в 20:02)
 

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

В данном случае я из ситуации вышел, но хотелось бы знать на будущее - можно ли ЗАСТАВИТЬ исполниться оператор echo там, где это нужно.

Похоже, что придется подстраиваться под него...

  Ответить  
 
 автор: BinLaden   (04.01.2009 в 20:29)   письмо автору
 
   для: Владимир55   (04.01.2009 в 20:21)
 

Посмотрите исходный HTML-код...Вы удивитесь.

  Ответить  
 
 автор: Владимир55   (04.01.2009 в 20:33)   письмо автору
 
   для: BinLaden   (04.01.2009 в 20:29)
 

Что там удивительного?

Я ничего такого не обнаружил...

  Ответить  
 
 автор: BinLaden   (04.01.2009 в 20:38)   письмо автору
 
   для: Владимир55   (04.01.2009 в 20:33)
 

Оператор echo выводит там, где Вы укажите. А вот отображение на странице с помощью браузера уже может отличаться порядком вывода. Ваша проблема в неправильном формировании HTML-таблицы.

  Ответить  
 
 автор: Trianon   (04.01.2009 в 20:39)   письмо автору
 
   для: Владимир55   (04.01.2009 в 20:33)
 

оператор echo исполняется ровно там где Вы его написали.
И по html-коду это прекрасно видно.
Если Вы открыли тег table, то дальше видимую часть текста можно писать, только открыв тег tr и td (th) .
Как минимум пока table не будет закрыт.
Любой не удовлетворяющий этому условию текст браузер волен поместить куда угодно.

  Ответить  
 
 автор: Владимир55   (04.01.2009 в 20:41)   письмо автору
 
   для: Trianon   (04.01.2009 в 20:39)
 

Понятно, спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования