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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Чтение из файлов

Сообщения:  [1-10]    [11-20]  [21-25] 

 
 автор: long123   (02.11.2006 в 22:57)   письмо автору
 
   для: cheops   (02.11.2006 в 19:43)
 

u menya poluchilos , stranno

   
 
 автор: cheops   (02.11.2006 в 19:43)   письмо автору
 
   для: mrklon   (02.11.2006 в 17:32)
 

Без использования промежуточного массива не получится.

   
 
 автор: mrklon   (02.11.2006 в 17:32)   письмо автору
 
   для: ЯR   (02.11.2006 в 13:44)
 

Спасибо!
Вот новая задачка:
Если я открываю директорию, и "readdir"-ом читаю файлы, то он их выводит по такому принципу:

1.dat
10.dat
11.dat
12.dat
13.dat

-//-

19.dat
2.dat
21.dat
и т.д.

А нужно:
1.dat
2.dat
3.dat
4.dat

Я нехочу использовать сортировку массива, слишком дорого будет. Нельзя-ли заставить "readdir" Работать понормальному?

   
 
 автор: ЯR   (02.11.2006 в 13:44)   письмо автору
 
   для: mrklon   (02.11.2006 в 11:14)
 

Значит у вас ничего из файла не прочиталось.
Поэтому и ошбики.
Может заменить

<?php
$db_msg_open
[$i]=fopen("db/".$db_read[$i],"r"); 
$db_msg_read[$i]=fgets($db_msg_open[$i],1000);
fclose($db_msg_open[$i]);
?>

на

<?php
$db_msg_read
[$i] = file_get_contents("db/".$db_read[$i]);
?>

Может так заработает

   
 
 автор: mrklon   (02.11.2006 в 11:14)   письмо автору
 
   для: ЯR   (02.11.2006 в 04:20)
 

Array ( [3] => [4] => [5] => )
Незнаю, что это может значить :-{|

   
 
 автор: ЯR   (02.11.2006 в 04:20)   письмо автору
 
   для: mrklon   (01.11.2006 в 22:48)
 

а приведи пример print_r($db_msg_read) (что оно выдаёт?)

   
 
 автор: mrklon   (01.11.2006 в 22:48)   письмо автору
 
   для: ЯR   (01.11.2006 в 11:28)
 

Так я привел не весь код, Ту часть что 100% работает - я заменил на "############" Да я же отметил: какая строка 69-ая.

Вот все целиком:



<a href="forms.php" target="_blank">FORMS</a><hr><hr>
<?

$i
=0;

$clinks=6// skolko ssilok pokazivat

$k=3//pokazivat po *
$v=15//vsego strok
$vk=ceil($v/$k); //vsego stranits



$page $HTTP_GET_VARS["cnt"];
if (empty(
$page))
    {
        
$page=1;
    }
$page=$page-1;

#----------------------------------------------------------------------------------

if ($v>$k){

if(
$page+1>1){    echo "<a href=index.php?cnt=1>&nbsp;&lt;&lt;&nbsp;</a>";}
if(
$page+1>1){    echo "<a href=index.php?cnt=",$page+1-1,">&nbsp;&lt;&nbsp;</a>";}

for(
$i=0;($page+1)-($clinks/2)+$i <= ($page+1)+($clinks/2) ;$i++)
    {
        if((
$page+1)-($clinks/2)+$i != $page+1)
        {

            if((
$page+1)-($clinks/2)+$i and ($page+1)-($clinks/2)+$i <= $vk)
            {echo 
"<a href=index.php?cnt=",($page+1)-($clinks/2)+$i,">",($page+1)-($clinks/2)+$i,"</a>";}
        }
        else
        {
            echo 
"<b>&nbsp;&nbsp;",($page+1),"&nbsp;&nbsp;</b>";
        }
    }

if(
$page+1<=$vk-1){    echo "<a href=index.php?cnt=",$page+1+1,">&nbsp;&gt;&nbsp;</a>";}
if(
$page+1<=$vk-1){    echo "<a href=index.php?cnt=",$vk,">&nbsp;&gt;&gt;&nbsp;</a>";}

}



echo(
"<hr>");
#----------------------------------------------------------------------------------

$msg_tmpl_open=fopen("tmpl/template.html","r");
$msg_tmpl_read=fread($msg_tmpl_open,10000);
list(
$shapka,$msg_tmpl,$niz)=explode("{{msg_template}}",$msg_tmpl_read);


#----------------------------------------------------------------------------------

$db_open=opendir("./db");

for(
$i=-2$i $page*$k+$k ;$i++)
    {
        
$db_read[$i]=readdir($db_open);
        if (
$db_read[$i]!="." and $db_read[$i]!=".." and ($page*$k <= $i))
        {
            
$db_msg_open[$i]=fopen("db/".$db_read[$i],"r");
            
$db_msg_read[$i]=fgets($db_msg_open[$i],1000);

            list(
$nik[$i],$mail[$i],$web[$i],$msg[$i],$data[$i],$otvet[$i])=explode("|",$db_msg_read[$i]);
            
$vivod1=preg_replace("/{{nik}}/",$nik[$i],$msg_tmpl);
            echo 
$vivod1;
            
fclose($db_msg_open[$i]);
        }
           else
           {
            unset(
$db_read[$i]);
        }
    }

?>

   
 
 автор: ЯR   (01.11.2006 в 11:28)   письмо автору
 
   для: mrklon   (31.10.2006 в 23:43)
 

Так тут вроде всего около 40 строк :-)

   
 
 автор: ЯR   (01.11.2006 в 11:26)   письмо автору
 
   для: Trianon   (01.11.2006 в 00:06)
 

делай как тебе удобнее.
Думаю, большой разницы нет.

   
 
 автор: Trianon   (01.11.2006 в 00:06)   письмо автору
 
   для: mrklon   (31.10.2006 в 23:43)
 

>Но, я думаю прочитать 10 файлов из 200 проще, чем открывать файл в 200 строк и читать оттуда 10 строк...

Совершенно безосновательное предположение.

>Я верю что readdir() быстрее fgets()...

readdir сама по себе файл не читает.
а readdir+file будет медленнее fgets

   

Сообщения:  [1-10]    [11-20]  [21-25] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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