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

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

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

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Так чтоли?
    PHP:
    echo $_SERVER['REMOTE_ADDR'];
     
  2. Alexz291

    Alexz291 New Member

    Joined:
    10 Mar 2012
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Ребята как в PhpStorm из External Libraries подключить класс к моему файлу? Если кто знает подскажите плз.
     
  3. Flisk

    Flisk Member

    Joined:
    4 Aug 2010
    Messages:
    147
    Likes Received:
    8
    Reputations:
    -2
    Подскажите пожалуйста по алгоритму: мне надо выводить данные из таблицы по 100 штук. Проблема в том, что в базе редко когда число кратное 100, т.е. например бывает 351 запись ,а надо вывести все.

    Я думал делать примерно так - получаю общее число (351 например), делю его на 100 (выходит 3,51). Потом делаю цикл for (from 1 to 3), и вывожу по 100 записи. Но как быть с остальными, что не влезли в сотню? Нет ли в пхп какой-то функции, чтобы округлить число в большую сторону? Я пока придумал лишь вариант - проверять на флоат, и если флоат, то инкремент делать , т.е. получил 3.511 - перевести в интегер и сделать ++, но мне почему-то кажется, что мой способ кривой. Или нормально?
     
  4. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Ну если в цикле выводишь, чтото вроде
    Code:
    while(ec = res) {}
    , то остановиться когда все выберет, тоесть лимит больше чем есть не критично зделать.
     
    1 person likes this.
  5. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    Правельние ето всё делать в майскул запросе используя лимит,
    например вывеcти 100 начиная с сотого
    limit 100, 100
    или например вывеcти 100 начиная с двусотого
    limit 200, 100
    и тд, ваще ето плагинация называется
     
  6. cardons

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

    Joined:
    19 Jul 2005
    Messages:
    778
    Likes Received:
    324
    Reputations:
    83
    PHP:
    $a 0;
    $b 351;
    $c 100;

    while(
    $a<=ceil($b/$c)) {
      
    // тут выводим записи
    $a++;
    }

    Но с базой все таки лучше )
     
  7. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Решил набросать "сканер" директорий. Правилен ли мой код, или он работает по другому принципу?
    PHP:
    <?php

    $link 
    ''//Ссылка
    $file=file('adm.txt'); //Файл с базой админок

    foreach($file as $l){
    $a=get_headers($link.$l);
    echo 
    $a[0]."\n";
    }

    ?>
     
  8. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Не страдай **, делай HEAD запросами через мультикурл(самому асинхронные сокеты конечно весело пилить).
    Зы что есче хорошо добавить, рандомный юзер агент, тайм ауты ибо какаянебудь анти ддос система забанит.
     
    #20428 mironich, 17 Apr 2012
    Last edited: 17 Apr 2012
  9. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    С multi curl я не могу разобратся. Сделал такой код:
    PHP:
    <?php

    $link 
    ''//Ссылка
    $file=file('adm.txt'); //Файл с базой админок

    foreach($file as $l){
    $ch curl_init();
    curl_setopt($chCURLOPT_URL$link.trim($l));
    curl_setopt($chCURLOPT_CUSTOMREQUEST'HEAD');
    curl_setopt($chCURLOPT_HEADER1);
    curl_setopt($chCURLOPT_NOBODY1);
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_RETURNTRANSFER1);
    curl_setopt($chCURLOPT_NETRC1);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT10);
    curl_setopt($chCURLOPT_TIMEOUT10);
    $res=curl_exec($ch);
    curl_close($ch);
    $a=explode(" "$res);
    echo 
    $a[1]."\n";
    }

    ?>
    Благодарю за совет, добавлю в уже готовый скрипт.
     
  10. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Шо то я ваще запутался тупица, моск не соображает вообще уже...
    Вообщем
    Есть строки
    texthere 123
    texthere 12345
    texthere 123456
    Как мне найти строки где только 123 ? т.е не последовательность нужно найти, а именно где в строке только 3 цифры - и которые не находяться ни в середине ни в конце других цифр . т.е текст и 3 цифры только ?

    Вот так находит,

    Code:
    \d{3}\d
    
    но так же находит к приру и в такой строке "123"45667
    капец...
     
    #20430 Adio, 17 Apr 2012
    Last edited: 17 Apr 2012
  11. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Регулярка.
    Code:
    #[a-zA-z]*\s[\d]{3}#
    Сработает если текст состоит из букв(без цифр).
     
  12. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Квадратные скобки вокруг \d излишни
     
    1 person likes this.
  13. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Не, все равно находит в строке 22333 - находит 223 - а не должно ничего находить !

    Не знаю может вы не поняли что я имел ввиду...

    к примеру:

    В строке

    Привет как дела 123

    Если есть именно 3 цифры и они не внутри другого числа, просто три цифры то находим или записываем.

    А если вот так -
    Привет как дела 1234566 - то эту строку удаляем или пропускаем - или не ищем.
     
  14. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Вообщем нашел пример, но только с текстом...

    Code:
    if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
        echo "A match was found.";
    } else {
        echo "A match was not found.";
    }
    
    Пытался подставить туда /d /d и {3} не вышло что то..
     
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    строку ограничьте символами ^ и $
     
  16. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    А ну тогда так.
    Code:
    #^[a-zA-z]*\s\d{3}$#
     
  17. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Странно
    Code:
    if (preg_match("#^[a-zA-z]*\s\d{3}$#", "PHP is the web scripting language of choice1233 123.")) {
        echo "A match was found.";
    } else {
        echo "A match was not found.";
    }
    
    в двух случаях пишет не найденно...
     
  18. Toxa33rus

    Toxa33rus Member

    Joined:
    31 Mar 2012
    Messages:
    41
    Likes Received:
    6
    Reputations:
    0
    PHP:
    <html><body><textarea cols="100" rows="30" name="t">
    <?php 

    $in
    ="Привет как дела 1523\nкак делища152\n дела wewewe1523\nа wewewe152\n";  

    preg_match_all('#[^0-9]+[0-9]{3}#'$in$out);  
    print_r($out);

    echo(
    "\n");

    ?>
    </textarea></body></html>
     
  19. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Ну рег расчитана на строчный список а после 123 что мб?
     
  20. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Дело в том что строки не в одной переменной как у тебя - т.е типа новая строка, строки беруться из файла, - а если они беруться из файла то там где есть цифры из 5 считаються тоже валидными.... ааааа

    Береться файл
    Считываються строки такого типа

    Привет как дела 123
    Привет как дела 1234
    Вот так - но нужно находить только 123
    А те 1234 не распознавать вообще
     
Thread Status:
Not open for further replies.