Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > не срабатывает preg_replace


Автор: Memphis 23.6.2006, 22:01
Не могу найти ошибку..и preg_replace не работает..и в функции table_parser() не обрабатывается цикл..
<?php
$file_name="table.txt";
$f=fopen($file_name, "r") or die("Can't load file $file_name. Maybe this file does not exist??");

function table_parser(){
$s = "<br>";
$s=$s."<table border=1 align=center width=100%><tr>";
for ($i=1; $i<sizeof($fh) ; $i++){
    echo $text_out;
    $str=fgets($fh, 4096);
    $cell=explode("|", $str);
    $s=$s."<tr align=center>";
        for($k=0; $k<sizeof($cell); $k++){
            if (i==1) $s=$s."<th>$cell[$k]</th>";
            else{    
                $s=$s."<td>";
                $s=$s."$cell[$k]";
                $s=$s."</td>";
            }
        }
    $s=$s."</tr>";
    }
$s=$s."</table>";
return $s;
}

$fh=fopen($file_name, "r");
$text=fread($fh,4000);
$text=preg_replace("/n","<n>",$text);
$text_out=preg_replace("/\[ontable\](.*)\[offtable\]/ie",' '.table_parser('\\1').' ',$text);
?> 

Автор: Mal Hack 23.6.2006, 22:22
Цитата(Memphis @  23.6.2006,  23:01 Найти цитируемый пост)
$text_out=preg_replace("/\[ontable\](.*)\[offtable\]/ie",' '.table_parser('\\1').' ',$text);

Юзай preg_replace_callback
И вообще код далеко не оптимальный.
ЗЫ: Пользуйся кнопкой код. 

Автор: Memphis 24.6.2006, 08:30
ок, буду знать..новичек я... 

Автор: $дмитрий 24.6.2006, 22:27
Код

$text_out=preg_replace("#\[ontable\](.*)\[offtable\]#ie","table_parser('$1')",$text);
 

Автор: Memphis 25.6.2006, 23:30
не хочет он работать и все на том..тормозит на первом цикле функции.. 

Автор: Memphis 26.6.2006, 03:20
Mal Hack, помоги оптимизировать и подскажи ошибку если не сложно..
 

Автор: RoDeX 26.7.2006, 08:38
От так попробуй:

Код

<?php
$file_name="table.txt";
$f=fopen($file_name, "r") or die("Can't load file $file_name. Maybe this file does not exist??");

function table_parser(){
$s = "<br>";
$s=$s."<table border=1 align=center width=100%><tr>";
for ($i=1; $i<sizeof($fh) ; $i++){
    echo $text_out;
    $str=fgets($fh, 4096);
    $cell=explode("|", $str);
    $s=$s."<tr align=center>";
        for($k=0; $k<sizeof($cell); $k++){
            if (i==1) $s=$s."<th>$cell[$k]</th>";
            else{
                $s=$s."<td>";
                $s=$s."$cell[$k]";
                $s=$s."</td>";
            }
        }
    $s=$s."</tr>";
    }
$s=$s."</table>";
return $s;
}

$fh=fopen($file_name, "r");
$text=fread($fh,4000);
$text=str_replace("\n","<n>",$text);
$text_out=preg_replace("#\[ontable\](.*)\[offtable\]#ie","table_parser('$1')",$text);
?>
 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)