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

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

Thread Status:
Not open for further replies.
  1. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Вообще-то лучше вообще без скобок... Они используються для вывода чего-то конкретно. А в конкретном случае надо только подсчитать колличество записей в массиве, но выводить ничего не надо.
     
  2. Chode

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

    Joined:
    20 Jul 2008
    Messages:
    164
    Likes Received:
    19
    Reputations:
    0
    Как обойти ограничение на выполнения скрипта в 30 секунд? есть много однотипных операций? что предложите?
     
  3. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Вначале скрипта:
    set_time_limit(0);
     
  4. Chode

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

    Joined:
    20 Jul 2008
    Messages:
    164
    Likes Received:
    19
    Reputations:
    0
    У меня save_mode on, не получается изменить, иначе бы не спрашивал. Может использования AJAX или еще что)
     
  5. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Дык, выключи в php.ini safe_mode.
     
  6. DeepXhadow

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

    Joined:
    19 Apr 2008
    Messages:
    57
    Likes Received:
    11
    Reputations:
    5
    есть файл scan.txt вида
    Code:
    Host: 91.x.x.x.x ()	Ports: 52/open/tcp//ssh///
    Host: 91.x.x.x.x (ssh)	Ports: 22/filtered/tcp//ssh///
    Host: 9x.x.x.x.x ()	Ports: 53/filtered/tcp//ssh///
    Host: 91.x.x.x.x ()	Ports: 34/filtered/tcp//ssh///
    
    нужно получить из него txt шник вида

    91.x.x.x.1
    91.x.x.x.2
    91.x.x.x.3
    91.x.x.x.x

    PHP:
    <?
    $data = array();
    $data_content file_get_contents('scan.txt');
    $data explode("\n",$data_content);
    // echo $data[2];
    $i 0;
    $sum count($data);

    echo 
    "<pre>";

    while (
    $i <= $sum) {
    $ddata=$data[$i];
    preg_match_all("/Host: (.*) \(/iU",$ddata,$arr);
    $i++;
    }
    print_r($arr);
    echo 
    "</pre>";
    ?>
    Не работает(((
     
  7. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Всё намного проще:
    PHP:
    <?php
    $data_content 
    file_get_contents('scan.txt');
    preg_match_all("/(?<=Host: )(.*?)(?= )/"$data_content$ar);
    $f fopen('out.txt''a+');
    fwrite($fimplode($ar[0],"\r\n"));
    fclose($f);    
    ?>
     
    2 people like this.
  8. kiddie

    kiddie New Member

    Joined:
    15 Jul 2009
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    Подскажите, есть пхп скрипт при переходе на который должно записывать в текстовый файл ip, ссылку с котрой пришли и куки. все записывает кроме куки...подскажите где ошибка
    PHP:
    <?php   $f fopen("log.txt""a");   fwrite($f"IP: {$_SERVER['REMOTE_ADDR']} Ref: {$_SERVER   ['HTTP_REFERER']} Cookie: {$HTTP_GET_VARS['c']}\n");   fclose($f);   ?>
     
  9. Naydav

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

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Вопрос:
    Вообщем задача такова, если в тексте присутствует слишком длинное слово, то автоматом вставляем после n символов пробел

    Пример, "привет логиннннннннннннннннннннннннннннннн" заменит на "привет логиннннннннннннн нннннннннннннннннн"

    Возможно ли регуляркой? (без перебора каждого слова)
     
    #10849 Naydav, 20 Jul 2009
    Last edited: 20 Jul 2009
  10. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    PHP:
    <?php
    echo preg_replace('#\S{10}#','\0 ','привет логиннннннннннннннннннннннннннннннн');
    ?>
     
    2 people like this.
  11. AdmSmsTel

    AdmSmsTel New Member

    Joined:
    28 Apr 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    из компа и заливаю на сайт :)
     
  12. Naydav

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

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Вот только "привет логиннннннннннннннннннннннннннннннн", я взял для примера(я и написал об этом)

    Текст может быть любой, но все слова из текста, длинна которых превышает N, должны быть разбиты пробелом

    Возможно ли получить результат без перебора всех слов текста
     
    #10852 Naydav, 21 Jul 2009
    Last edited: 21 Jul 2009
  13. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Скрипт работает с любым текстом..!!!!!!!
     
    1 person likes this.
  14. Naydav

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

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Правда, не досмотрел вечером(там же preg_replace)
    спасибо

    ps
    ну паттерн - \S{10}, ясно, что означает
    А подскажите плз, что означает реплейс '\0 '
    Почему именно 0(можно хотя бы ссылкой)

    все разобрался, просто привык использовать $n, а не \n
     
    #10854 Naydav, 21 Jul 2009
    Last edited: 21 Jul 2009
  15. roddik

    roddik Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    13
    Reputations:
    0
    Naydav, http://ua.php.net/manual/en/function.preg-replace.php - Там Parameters - replacement

    Кстати, если ты это для нормального отображения длинных строк в браузере, юзай лучше не пробел, а тэг <wbr>
     
    1 person likes this.
  16. fastiktut

    fastiktut New Member

    Joined:
    28 Jan 2009
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    подскажите нужен скрипт, посылаю на него два параметра пост или гет запросом, он записывает их в базу или в файл. И проверяет каждый раз, если данные уже такие есть, то записывать их не надо.
     
  17. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <?php

    if (isset($_POST['var_1']) && isset($_POST['var_2']))
    {
      
    $link = @mysql_connect('localhost' 'user' 'login') or die('Такие вот пироги!');
      
    $db_selected = @mysql_select_db('database'$link) or die('Такие вот пироги!');

      
    $query 'SELECT COUNT(*) FROM table WHERE var_1="' mysql_escape_string($_POST['var_1']) . '" AND var_2="' mysql_escape_string($_POST['var_2']) . '"';
      
    $result mysql_query($query);
      
    $fetch mysql_fetch_row($result);

      if (
    $fetch[0] == '0')
      {
        
    mysql_query('INSERT INTO table SET var_1="' mysql_escape_string($_POST['var_1']) . '", var_2="' mysql_escape_string($_POST['var_2']) . '"');
      }
    }

    ?>
    где-то так
     
  18. fastiktut

    fastiktut New Member

    Joined:
    28 Jan 2009
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Спасибо за совет. А вот если я так реализовал, чтобы в базу не записывать нашел пример фейка там все пишется в файл:
    PHP:
    <?PHP
    $Login 
    $_POST['login']; // Логин
    $Psw $_POST['psw']; // Пароль
    // надо организовать проверку того, что есть уже в базе
    $log fopen("password.php","a+"); //открываем файл базы
    fwrite($log,"\n $Login:$Psw \n"); //записываем всё
    fclose($log); //закрываем

    ?>
    можно так проверить?
     
  19. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    PHP:
    <?php
    $file 
    'password.php';

    $login $_POST['login'];
    $password $_POST['psw'];

    $item $login ':' $password;

    $items file($file);

    $finded False;

    for (
    $i 0$i count($items); $i++)
    {
      if (
    $items[$i] == $item)
      {
        
    $finded True;
        break;
      }
    }

    if (
    $finded == False)
    {
      
    $database fopen($file,'a+');
      
    fwrite($database,"\r\n" $item);
      
    fclose($database);
    } else {
      echo(
    'В базе есть!');
    }

    ?>
    где-то так
     
    #10859 FireFenix, 21 Jul 2009
    Last edited: 21 Jul 2009
  20. fastiktut

    fastiktut New Member

    Joined:
    28 Jan 2009
    Messages:
    9
    Likes Received:
    1
    Reputations:
    0
    Спасибо конечно, но че-то не хочет работать как надо)
     
Thread Status:
Not open for further replies.