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

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

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

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Как определить работоспособноть и тип прокси через php?
     
  2. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Соединяешься допустим с 2ip.ru
    Потом парсишь ип,который он покажет и сравниваешь:
    -Если такой же-то прозрачный
    -Если другой и ничего не написано-анонимный
    и т.д.
     
  3. NeW

    NeW New Member

    Joined:
    9 Feb 2011
    Messages:
    50
    Likes Received:
    0
    Reputations:
    0
    Что не так в коде:
    PHP:
    <?php
    $catalogs 
    file_get_contents("spisok.txt");
    $catalogs explode(" "$catalogs);
    $size count($catalogs);
    for (
    $i=0$i<$size$i++) {
    echo 
    $catalogs["$i"] . "<br>";
    }
    ?>
    Почему то не создает массив, а остается строка.
     
  4. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    А пробелы есть в файле?
    Попробуйте
    PHP:
    $catalogs file_get_contents("spisok.txt"); 
    $arr explode(" "$catalogs);
    print_r($arr);
     
  5. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Что лучше использовать: steam_context, socket или cURL? С точки зрения быстродействия и нагрузки. Или зависит от конкретной задачи? Если да, то как выбрать, что использовать. Спасибо.
     
  6. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    CURL основан на socket, т.е. в конечном итоге все сводится к вызову fsockopen и т.д., поэтому socket
     
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    SHiNiGaMi все программы сводятся к вызову машинных команд - пишите на ассемблере?

    AnGeI для HTTP протокола - CURL, для прочего - socket
     
    _________________________
    1 person likes this.
  8. Nilamop

    Nilamop New Member

    Joined:
    6 Feb 2008
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Добрый день. Объясните пожалуйста построчно следующий код. Особенно не понятен второй цикл, прерывание, логика подсчета и вывода числа не понятна так же, если прерывать первый цикл, тоесть 2чку убрать, (выводит 95):( Заранее спасибо за разжевывание.
    PHP:
    <?php 

    for ($i=1$i<=10$i++)
    {
         for (
    $j=1$j<=10$j++)
         {
             
    $sum++;
             if ((
    $j + ($i 1) * 10) == 55) break 2;
         }
    }
    echo 
    $sum;

    ?>


     
    #18048 Nilamop, 28 Mar 2011
    Last edited: 28 Mar 2011
  9. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    Nilamop Привет,

    PHP:
    <?php

    for($i 1$i <= 10$i ++) # Цикл 1 (СТАРТ = 1, КОНЕЦ  = 10, ШАГ = 1)
    {
        for(
    $j 1$j <= 10$j ++) # Цикл 2 (СТАРТ = 1, КОНЕЦ  = 10, ШАГ = 1)
    {
            
    $sum ++; # Инкрименирует Сумму (Аналог того, что быдает If-условие)
            
    if (($j + ($i 1) * 10) == 55)
                break 
    2# Выпрыгивает из цикла 2-ого уровня (Цикл 1)
        
    }
    }
    echo 
    $sum;

    ?> 
    Для наглядности можно дописать выдачу каждого шага:

    PHP:
    <?php

    for($i 1$i <= 10$i ++) # Цикл 1 (СТАРТ = 1, КОНЕЦ  = 10, ШАГ = 1)
    {
        echo 
    "I = " $i "<br>";
        for(
    $j 1$j <= 10$j ++) # Цикл 2 (СТАРТ = 1, КОНЕЦ  = 10, ШАГ = 1)
    {
            echo 
    "J = " $j "<br>";
            
    $sum ++; # Инкрименирует Сумму (Аналог того, что быдает If-условие)
            
    echo "sum = " $sum "<br>";
            if ((
    $j + ($i 1) * 10) == 55)
                break 
    2# Выпрыгивает из цикла 2-ого уровня (Цикл 1)
        
    }
    }
    echo 
    $sum;

    ?> 
    В итоге мы получим такую схему выполнения действий:

    PHP:
    1
    1
    sum 
    1
    2
    sum 
    2
    3
    sum 
    3
    4
    sum 
    4
    5
    sum 
    5
    6
    sum 
    6
    7
    sum 
    7
    8
    sum 
    8
    9
    sum 
    9
    10
    sum 
    10
    2
    1
    sum 
    11
    2
    sum 
    12
    3
    sum 
    13
    4
    sum 
    14
    5
    sum 
    15
    6
    sum 
    16
    7
    sum 
    17
    8
    sum 
    18
    9
    sum 
    19
    10
    sum 
    20
    3
    1
    sum 
    21
    2
    sum 
    22
    3
    sum 
    23
    4
    sum 
    24
    5
    sum 
    25
    6
    sum 
    26
    7
    sum 
    27
    8
    sum 
    28
    9
    sum 
    29
    10
    sum 
    30
    4
    1
    sum 
    31
    2
    sum 
    32
    3
    sum 
    33
    4
    sum 
    34
    5
    sum 
    35
    6
    sum 
    36
    7
    sum 
    37
    8
    sum 
    38
    9
    sum 
    39
    10
    sum 
    40
    5
    1
    sum 
    41
    2
    sum 
    42
    3
    sum 
    43
    4
    sum 
    44
    5
    sum 
    45
    6
    sum 
    46
    7
    sum 
    47
    8
    sum 
    48
    9
    sum 
    49
    10
    sum 
    50
    6
    1
    sum 
    51
    2
    sum 
    52
    3
    sum 
    53
    4
    sum 
    54
    5
    sum 
    55
    55 
     
  10. gasterBaiter

    gasterBaiter New Member

    Joined:
    18 Feb 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    при заливке форума на хостинг выдает ошибку Parse error: syntax error, unexpected '=', expecting '(' in bootstrap.php on line 60

    // Turn on error reporting
    error_reporting(E_ALL & ~E_NOTICE);

    // Legacy system constants
    define('CSRF_PROTECTION', true);
    define('VB_AREA', 'Forum');

    // Don't use the usual WOLPATH resolution
    define('SKIP_WOLPATH', 1);

    // Legacy info
    // TODO: Load the cms phrasegroup elsewhere
    $phrasegroups = array('vbcms');

    // Bootstrap to the legacy system
    require('./includes/class_bootstrap.php');
    $bootstrap = new vB_Bootstrap();
    $bootstrap->datastore_entries = array('routes');
    $bootstrap->bootstrap();


    /*MVC Bootstrap=====================================================================*/

    // Notify includes they are ok to run
    if (!defined('VB_ENTRY'))
    {
    define('VB_ENTRY', 1);
    }

    // Get the entry time
    define('VB_ENTRY_TIME', microtime(true));

    // vB core path
    define('VB_PATH', realpath(dirname(__FILE__)) . '/');

    // The package path
    define('VB_PKG_PATH', realpath(VB_PATH . '../packages') . '/');

    // Bootstrap the framework
    require_once(VB_PATH . 'vb.php');
    vB::init();

    if (defined('VB_API') AND VB_API === true)
    {
    // Force vB::$vbulletin->options['route_requestvar'] to 'r' for API.
    vB::$vbulletin->options['route_requestvar'] = 'r';
    }

    // Get routed response
    print_output(vB_Router::getResponse());


    помогите пофиксить ошибку
     
  11. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    gasterBaiter

    это явно не полный код. Ошибка указывает на 60 строку. Даже со слэшами php там 60 строк не будет
     
  12. gasterBaiter

    gasterBaiter New Member

    Joined:
    18 Feb 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    <?php
    /*======================================================================*\
    || #################################################################### ||
    || # vBulletin 4.1.0 Patch Level 2
    || # ---------------------------------------------------------------- # ||
    || # Copyright 2000-2010 vBulletin Solutions Inc. All Rights Reserved. ||
    || # This file may not be redistributed in whole or significant part. # ||
    || # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
    || # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
    || #################################################################### ||
    \*======================================================================*/

    /*Legacy Bootstrap==================================================================*/

    // Turn on error reporting
    error_reporting(E_ALL & ~E_NOTICE);

    // Legacy system constants
    define('CSRF_PROTECTION', true);
    define('VB_AREA', 'Forum');

    // Don't use the usual WOLPATH resolution
    define('SKIP_WOLPATH', 1);

    // Legacy info
    // TODO: Load the cms phrasegroup elsewhere
    $phrasegroups = array('vbcms');

    // Bootstrap to the legacy system
    require('./includes/class_bootstrap.php');
    $bootstrap = new vB_Bootstrap();
    $bootstrap->datastore_entries = array('routes');
    $bootstrap->bootstrap();


    /*MVC Bootstrap=====================================================================*/

    // Notify includes they are ok to run
    if (!defined('VB_ENTRY'))
    {
    define('VB_ENTRY', 1);
    }

    // Get the entry time
    define('VB_ENTRY_TIME', microtime(true));

    // vB core path
    define('VB_PATH', realpath(dirname(__FILE__)) . '/');

    // The package path
    define('VB_PKG_PATH', realpath(VB_PATH . '../packages') . '/');

    // Bootstrap the framework
    require_once(VB_PATH . 'vb.php');
    vB::init();

    if (defined('VB_API') AND VB_API === true)
    {
    // Force vB::$vbulletin->options['route_requestvar'] to 'r' for API.
    vB::$vbulletin->options['route_requestvar'] = 'r';
    }

    // Get routed response
    print_output(vB_Router::getResponse());


    /*======================================================================*\
    || ####################################################################
    || # NulleD By - FintMax
    || # SVN: $Revision: 28749 $
    || ####################################################################
    \*======================================================================*/
     
  13. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Привет.
    Есть проблема.
    Флудят через формы обьявлений на сайте. (Капча есть)
    Вопрос.

    Как можно сделать лимит - на отправку сообщений по времени
    И если возможно - блокировка айпи ? если к примеру один и тот же IP отсылает по разным формам мессаги ?

    Как лучше сделать ?

    Спасибо
     
  14. OnlyOn

    OnlyOn Banned

    Joined:
    18 Oct 2010
    Messages:
    252
    Likes Received:
    89
    Reputations:
    36
    получаешь дату последнего добавления.
    $x = date();
    тут вносишь ее в бд вместе с IP
    при след.добавлении проверяешь по IP дату. если она меньше лимита - то отклоняешь.

    типа:
    $ip = $_REQUEST[REMOTE_ADDR];
    $date = date();
    выбираешь из бд... WHERE ip='$ip'
    и сравниваешь дату.
    if ($date < $limit) {
    отклон
    }
    вносишь в бд новые данные
     
  15. Nilamop

    Nilamop New Member

    Joined:
    6 Feb 2008
    Messages:
    13
    Likes Received:
    1
    Reputations:
    0
    Разобрался немного, но не до конца. Как понимаю, после 55 итерации происходит break 2, соотвецтвенно выводится 55. А если убрать 2 возле break; то выводится 95, тоесть выпрыгивается с двух циклов или только 1го уровня(Цикла 2)? Непонятно, почему именно 95 выводит, в чем ограничение. Или же 95 это максимальное количество итераций исходя из заданных переменных? Подскажите уже до конца, с меня + :)
     
    #18055 Nilamop, 28 Mar 2011
    Last edited: 28 Mar 2011
  16. FewG

    FewG Member

    Joined:
    25 Dec 2009
    Messages:
    136
    Likes Received:
    12
    Reputations:
    0
    Да, останавливается ЦИКЛ 1, т.е внешний ЦИКЛ. После него стоит лишь вывод суммы - echo $sum; - и никаких действий.

    С - break - выполняемое действие выпрыгивает из текущего цикла, что в данном случае является ЦИКЛ 2.

    Сам скрипт можно представить следующим образом:


    [*] Вызывается ЦИКЛ 1

    [*] СТАРТ (начальное число = 1)

    [*] ЦИКЛ 2 начинает работать и прогоняет числа от 1 до 10 (согласно условию)

    [*] Когда ЦИКЛ 2 закончил считать до 10, он завершает свою работу, ибо условие ($j <= 10 (до 10))

    [*] Очередь переходит опять к ЦИКЛУ 1.

    Так как предыдущая цифра была 1, а шаг из условия равен 1, то следующая цифра будет 2.


    [*] ЦИКЛ 1 передает конроль ЦИКЛУ 2, который снова отсчитывает от 1 до 10.

    В это время идет подсчет Суммы (Инкримент +1 за каждый шаг.)

    При "break 2" ЦИКЛ 1, т.е внешний ЦИКЛ, останавливается (Условие: sum = 55 -> остановка скрипта)
    При "break " останавливется текущий ЦИКЛ 2 (при сумме равной 55), (I = 6; J = 5; sum = 55).

    [*] Контроль переходит обратно к ЦИКЛУ 1, в котором происходит повышение I на 1.

    Пока не будут выполены основные условия обоих циклов (I = 10; J = 10), скрипт не прекратит работать.


    P.S. В этоге мы имеем Сумму равной 95 потому, что ЦИКЛ 2 прекратил счет на J = 5 на 6 круге ЦИКЛА 1.
     
    #18056 FewG, 29 Mar 2011
    Last edited: 29 Mar 2011
    1 person likes this.
  17. Тых

    Тых New Member

    Joined:
    30 Jan 2011
    Messages:
    0
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток. Проблема вот в чем: Сайт создан на Wordpress. Все страницы загружаются нормально, а записи при переходе с главной грузятся по 20-30 секунд, причем без разницы 1 строчка там написана, или огромная статья + видео и фото - загружаются одинаково долго.
    Вот пример: http://тахтаров.рф/?p=164
     
    #18057 Тых, 29 Mar 2011
    Last edited: 30 Mar 2011
  18. Gvidion

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

    Joined:
    11 Sep 2009
    Messages:
    79
    Likes Received:
    43
    Reputations:
    28
    как написать функцию, что бы заходило на определенный сайт $site, и качало файл который выдаёт автозагрузкой на этой странице и сохранял его. Авторизироваться не надо.
     
  19. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    file_put_contents("download.zip",file_get_contents("http://site.com/file.zip"));
     
  20. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    есть у кого-нибудь читалка писем на рамблере через imap/pop3?
    или что я делаю не так
    Code:
    imap_open('{mail.rambler.ru:993/imap/ssl}INBOX', '[email protected]', 'passwd',OP_READONLY)
    
     
    #18060 Compton, 29 Mar 2011
    Last edited: 29 Mar 2011
Thread Status:
Not open for further replies.