Помогите с выводом данных

Kail

Новичок
Помогите с выводом данных

:confused: Люди, кто может, помогите!
PHP:
<?php

$xfile = @file("text.txt");
$random_num = rand (0,count($xfile)-1);
$udata = explode("::",$xfile[$random_num])

?>
маленький скриптик, выводит случайным образом строку из .txt файла. (формат тхт такой
1::ля ля ля ля ля
2::бла бла бла и т.д. )
нужно вставить результат работы зтого скрипта в другой скрипт, генерирующий
.wml страничку.(для WAP браузеров)
PHP:
<?php

$five =1350;            // число символов на странице
$dir = './book/';      // папка с текстов. файлами
$tranc = 1;            // поменяйте на 0 если не хотите использовать встроенный перекодировщик
$title = 'библиотека ';  // заголовок


header("Content-type: text/vnd.wap.wml");
$ret = "<?xml version=\"1.0\"?><!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"". " \"http://www.wapforum.org/DTD/wml_1.1.xml\"><wml><card title=\"$title\">";
 $ret .= '<p>';
$open_dir=opendir($dir);

while (false!==($file=readdir($open_dir)))
{
if (is_file("$dir/$file")) $f[]=$file;
}
closedir($open_dir);
$count = sizeof($f);

if(!isset($_GET['id']))
  {
  for( $i = 0;  $i < $count ; $i++ )
     {
     $ret .= '<a href="wap_book.php?id='.$i.'">'.substr($f[$i],0,-4).'</a><br/>';
     }
  }
else

{

$id = $_GET['id'];
if(!array_key_exists($id,$f)) header("Location: wap_book.php");

if(!isset($_GET['p']))$p=1; else $p = $_GET['p'];
$file_name = $dir.$f[$id];
$file= join('',file($file_name));
$obsum = $p * $five;
$nasum = $obsum - $five;
$end='0';

if(!isset($_GET['go']))
  {

  for($i=$nasum; $i<$obsum; $i++)
     {
     if(!isset($file[$i])) $end='1'; else $ret .=$file[$i];
     }
  $ret .= 'echo($udata())';
  $ret .= '<br/>';
  if($p == '1')  $ret .= ''; else {$ret .= '<a href="wap_book.php?id='.$id.'&amp;p='.($p-1).'">назад</a>';$ret .= ' '; }
  if($end=='1')  $ret .= ''; else {$ret .= '<a href="wap_book.php?id='.$id.'&amp;p='.($p+1).'">далее</a>';}

  $ret .= '<br/><a href="wap_book.php?go=1&amp;id='.$id.'">перейти</a>';
  $ret .= '<br/><a href="wap_book.php">в начало</a>';
  }

  else $ret .='
  введите номер страницы от 1 до '.(ceil(strlen($file)/$five)).'<br/><input name="code" format="*N"  maxlength="10" title="code"/>
  <anchor title="go">перейти<go href="wap_book.php" method="get">
  <postfield name="p" value="$(code)"/>
  <postfield name="id" value="'.$id.'"/>
  </go></anchor>';

  }


   $ret .= 'echo $udata;';
  $ret .= '</p></card></wml>';
пробовал так print "$udata[1]"; и так
echo "$udata[1]"; браузер ругается, что полученный код не совместим с xml 1.1, а если вставлять так include "xxx.php"; то код выводится корректно, но перед "шапкой" wml (выводит здесь <%xml version="1.0"%> )странички, ну ещу и браузер добавляет свои нелестные отзывы. Третий день бьюсь :mad: Помогите плизззз!
 

baev

‹°°¬•
Команда форума
Это чего такое:
PHP:
$ret .= 'echo($udata())';
?!

У Вас там что -- код потом через eval() пропускается?
 

Kail

Новичок
Прошу прошения, этот кусочек забыл стереть, когда пытался сам разобраться. Кстати, с ним тоже не работает. Повторюсь, моя проблема повторюсь, в том, что нужно вывести результат работы 1-го скрипта в строго определённом месте исходного кода (а лучше в 2-3 местах). Сами скрипты по отдельности рабочие, проверено, и еще у меня есть другой скрипт, где такой формат ввода include "xxx.php"; прекрасно работает!!! Почему он здесь не срабатывает?
 

Kail

Новичок
Всё, нашёл! Надо было вставить код первого скрипта во второй и выводить таким макаром $ret .=$udata[1];
Всё прекрасно заработало
Думаю, тема закрыта.
 
Сверху