[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Нихрена не понял... можно поподробнее и, желательно, с примерами?
     
  2. Chrek625

    Chrek625 Elder - Старейшина

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    Вот пример:
    https://blablablabla.com

    LOGONPAGE=LOGONPAGE
    screenRes=1024x768
    timezone=GMT 0000
    Java=On
    UserId1=1234214
    Password=qwerty
    QQpass=qwerty

    нечто подобное к примеру находиться в файлах. меня интересует с помощью какой функции можно найти строчку с адресом и считать её и несколько строк следующих за ней.
     
    1 person likes this.
  3. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Ну регулярками, или file() и поиск по массиву. А следующие строчки $file[$key + 1], $file[$key + 2]
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <pre>
    <?php
    @set_time_limit(0); 
    @
    ini_set("display_errors","1");

    $b 8//Кол-во строчек с нужной нам инфо, следующее за названием сайта (включая пустые строки, до следующего названия сайта)
    $z fopen('tema2.txt''a'); // Файл-результат по запросу
    $submit $_POST['submit'];
    if(isset(
    $submit))
    {
       
    $site trim($_POST['site']);//Сайт, данные по которому нам нужны
       
    $a fopen('tema1.txt','r'); //Файл с данными
       
    while(!feof($a)) {
          
    $buffer trim(fgets($a));
          if (
    preg_match('|' $site '|',$buffer)) {
            for (
    $i=1$i<=$b$i++) {
              echo 
    "$buffer\n";
              
    fwrite ($z,"$buffer\r\n"); 
              
    $buffer trim(fgets($a));
            }   
          }
       }
       
    fwrite ($z,"=====================\r\n");     
       
    fclose ($a);
    }
    ?>
    </pre>
    <html>
    <head> 
    <meta http-equiv="Content-Type" content="text; charset=windows-1251"> 
    <title>FTP2FTP</title> 
    </head> 
    <bоdу> 
    <div align="center"> 
    <form method="post"> 
    <table> 
    <tr><td><span>Input site name:</span></td><td><input type="text" name="site" /></td></tr> 
    </table> 
    <input type="submit" name="submit" value="Find" /> 
    </form> 
    </div> 
    </bоdу> 
    </html>
    причем можно воодить без "http" или просто часть названия сайта
     
    1 person likes this.
  5. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    P.S. Данные типа Java и ScreenRes для передачи на вход ресивера в системе супербана? =)
     
  6. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    как записать три строки в файл? Например первая $name втроая $email треяя $message.
    Чтобы потом масив $data[0] содержал $name $data[1] содержал $email $data[2] содержал $message.
    У меня получаеться так но если я в $message записиваю несколько строк с пробелами и с "ентер" например "авбгд
    авбвгд
    абвгд"

    То потом у меня $data[2] содержыт только "авбгд" а мне нужно чтобы вивести потом все ссобщение а не только первую строку.
     
  7. k.sergey

    k.sergey New Member

    Joined:
    6 May 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    при записи заменять символы переноса каретки на <br>
     
  8. Patronik

    Patronik Member

    Joined:
    16 Mar 2009
    Messages:
    111
    Likes Received:
    12
    Reputations:
    0
    Можно поконкретней, я записиваю так:
    fputs($file,$name."\n");
    fputs($file,$email."\n");
    fputs($file,$message."\n");

    Считиваю так
    for($i2 = $start; $i2<$count; $i2++)
    {
    $entry = $me[$i2];
    $data = file("mes/$me[$i2]");
    $name = trim($data[0]);
    $email = trim($data[1]);
    $message = trim($data[2]);
    }
     
  9. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Перед записью для всех переменных делаешь:
     
  10. k.sergey

    k.sergey New Member

    Joined:
    6 May 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    можно перед записью заменить символы переноса каретки на тег <br>
    $message=str_replace("\n","<br>",$message);
    тогда у вас в файле будет одна строка
    $data[2] = "авбгд<br>авбвгд<br>абвгд";
     
    1 person likes this.
  11. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    вставлю своих 5 коп
    PHP:
    <?php
    $msg
    ="
    авбгд 
    авбвгд
    абвгд"
    ;
    $msgtrue=str_replace("\n","",$msg);
    echo 
    $msgtrue;// авбгд авбвгд абвгд 
    ?>
     
  12. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Эй, народ, что ЭТО такое??? Отвечу - это полтора страницы быдлокодов.
    Patronik, Запись:
    PHP:
    <?
    $name='Павел Дуров';                                                 #имя
    $email='[email protected]';                                      #емейл
    $message='Привет всем!';                                           #сообщение
    $file='info.txt';                                                   #файл для записи
    fwrite(fopen($file,'a+'),$name."\r\n".$email."\r\n".$message);    #запись в файл
    ?>
    Чтение:
    PHP:
    <?
    $file='info.txt';  #файл для чтение
    $data=file($file); #читаем файл
    /*
    $data выйдет

    Array
    (
        [0] => Павел Дуров

        [1] => [email protected]

        [2] => Привет всем!
    )

    */
    ?>
     
  13. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Я бы считал так:
    PHP:
    $name array_shift($data);
    $email array_shift($data);
    $message implode(" "$data);
     
  14. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Мда, почитай о функции file()
    http://php.net/file
     
  15. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Специально для тебя всё по-порядку:
    1)
    2)
    3)
    То есть вместо кода
    PHP:
    $name trim($data[0]);
    $email trim($data[1]);
    $message trim($data[2]);
    Я предлагаю
    PHP:
    $name array_shift($data); 
    $email array_shift($data); 
    $message implode(" "$data);
    Про file() я знаю, эта функция там присутствует...
    К томуже мой вариант решает проблему
    А твой нет...
     
  16. Flair

    Flair Member

    Joined:
    7 May 2009
    Messages:
    36
    Likes Received:
    13
    Reputations:
    9
    есть xss вконтакте, нужна помощь чтобы доработать пишите в лс
     
  17. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Код:

    PHP:
    while (!feof($file)){
                                    
    $buff fgets($file,4096);
                                    
    $i++;
                                    
    $ex1 explode(";",$file);
                                    
    $ex2 explode("-",$file);
                                    echo 
    "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
                                        }
    Проблема в том что отображаеться в поле вместо содержания $ex1[0] отображается "Resource id #4" а вместо $ex2[1] - ничего
    Ах да все что было в файле удаляется при этом

    В чем проблема?
    В файле из которого вывожу примерно это

    123456;098732-15
     
  18. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
    <?
    $file=file('info.txt');
    foreach(
    $file as $line){
    $i++;
    $ex1 explode(";",$line);
    $ex2 explode("-",$line);
    echo 
    "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".@$ex2[1]."</center></td>,</tr>";
    }
    ?>
    Так устраивает? Намного легче + удобнее.

    ЗЫ: Если надо все таки тот вариант, читай с буффера, а не с хендла
    PHP:
    <?
    $file=fopen('info.txt','a+');
     while (!
    feof($file)){
                                    
    $buff fgets($file,4096);
                                    
    $i++;
                                    
    $ex1 explode(";",$buff); //посмотри у себя
                                    
    $ex2 explode("-",$buff); //посмотри у себя
                                    
    echo "<tr><td width=\"28\" height=\"23\"><center>".$i."</center></td><td width=\"107\"><center>".$ex1[0]."</center></td><td width=\"43\"><center>".$ex2[1]."</center></td>,</tr>";
                                        }
    ?>
     
    2 people like this.
  19. diznt

    diznt Elder - Старейшина

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Спасибо большое! ;)

    Вот такой вопрос ко всем...
    Нужно сделать задержку в миллисекундах (на php)
    Как это реализовать? подчеркиваю что в миллисекундах нужна задержка а не в секундах
     
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://us.php.net/manual/en/function.usleep.php
     
Thread Status:
Not open for further replies.