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

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

Thread Status:
Not open for further replies.
  1. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,806
    Likes Received:
    1,957
    Reputations:
    594
    php.su - мне обычно достаточно.
     
  2. seofilms

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

    Joined:
    27 May 2009
    Messages:
    67
    Likes Received:
    46
    Reputations:
    14
    Кто нибудь знает статьи где нормально обучают ООП в php ?
    Ибо никак не могу к ООП привыкнуть, сам код понять могу , а написать на ооп ну очень не привычно...
    Как вы к нему привыкали ?
     
  3. Луна

    Луна New Member

    Joined:
    19 May 2012
    Messages:
    42
    Likes Received:
    2
    Reputations:
    0
    http://ruseller.com/lessons.php?rub=37&id=653

    Не для php, но в целом не помешает
    http://www.helloworld.ru/texts/comp/other/oop/index.htm
    К нему не нужно привыкать, нужно просто понять это, я не программист, но еще лет 5 назад учил С++ и читал ООП, там просто нужно понять.
     
  4. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Надо понять просто зачем ООП было сделано, и сможешь писать, точнее понять как его надо применять.
    Одно из причин использования уменьшение повторяющегося кода, не надо делать глобальных переменных можно сделать их членами класса и.т.д....


    Есть где нибудь документация к Propel на Русском яз.?
     
  5. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    Подскажите по-поводу таймаута в CURL и в целом по работе с прокси. Дело в том, что CURL иногда не хочет работать через рабочую прокси.
    Сначала подумал, что не хватает таймаута, добавил:
    PHP:
    set_time_limit(0);
    ignore_user_abort(1);
    ........
    curl_setopt($chCURLOPT_TIMEOUT_MS120000);
    curl_setopt($chCURLOPT_CONNECTTIMEOUT,120);
    curl_setopt($chCURLOPT_TIMEOUT,1200);
    Выполняется полминуты, не больше и выдает Connection timed out. В чем может быть проблема?

    PS: попробовал чекнуть через fsockopen(), выдает false. Проверил прокси в браузере - работает.
     
    #20645 AnGeI, 25 May 2012
    Last edited: 25 May 2012
  6. c0rp$e

    c0rp$e Elder - Старейшина

    Joined:
    5 Dec 2003
    Messages:
    206
    Likes Received:
    37
    Reputations:
    -5
    В парсере есть ссылка вида www.site.com/?x=111&y=555
    алгоритм:
    заходит на сайт по ссылке, парсит информацию в файл
    далее уменьшает значение ххх на 1 ( 110 и так далее ) по кругу.

    Как сделать чтобы сначала парсил по урлу x=111& y=555
    после x=111& y=554
    после x=111& y=553
    и так далее, пока y не станет равным 0
    И только после этого пошло x=110, и снова y=555

    Т.е. сначала проходим парсинг до нуля по переменной Y
    и только потом уменьшаем переменную х
    Заранее спс
     
  7. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Вложений цикл же.
    В первом уменьшаешь, X , во втором(который внутри первого) проходишь все значения Y.
     
  8. c0rp$e

    c0rp$e Elder - Старейшина

    Joined:
    5 Dec 2003
    Messages:
    206
    Likes Received:
    37
    Reputations:
    -5
    можно на примере пожалуйста
     
  9. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    PHP:
    for ($x 111$x 0$x--) {

       
    $url $url.'x='.$x,'&y=';

      for (
    $y 553$y 0$y --) {

          
    get($url.$y);

      }

    }
     
    #20649 mironich, 26 May 2012
    Last edited: 26 May 2012
  10. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    Продолжение поста #20817
    Попробовал чекнуть функцией:
    PHP:
    function test($proxy)
    {
    $splited explode(':',$proxy); // Separate IP and port
    $con = @fsockopen($splited[0], $splited[1], $eroare$eroare_str120);
    var_dump($con);
    }
    test('111.111.111.111:3128');
    После 20 секунд выводит false, так-что это не проблема CURL'а. TimeOut полностью не проходит, значит ответ от прокси получен, но почему не происходит коннект, какие могут быть причины?
     
  11. DeepBlue7

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

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    AnGeI

    Так пашет:

    Code:
    <?php
    function testProxy($addr)
    {
    	$splitted = explode(':', $addr);
    	$hConn = @fsockopen($splitted[0], $splitted[1], $erroare, $eroare_str, 5);
    	if($hConn) return true;
    	return false;
    }
    if(testProxy("190.0.32.206:31428"))
    {
    	echo "OK";
    }
    else
    echo "FAIL";
    
     
    #20651 DeepBlue7, 27 May 2012
    Last edited: 27 May 2012
  12. c0rp$e

    c0rp$e Elder - Старейшина

    Joined:
    5 Dec 2003
    Messages:
    206
    Likes Received:
    37
    Reputations:
    -5
    так и не получилось что-то... если быть точнее

    Code:
     
    $h = fopen("1.txt","a+");
    $i=fgets($h, 1024);
    
    
    	for($page=5;$page>=1;$page--) {
    
    
    надо чтобы
    $i переходило на следующую строку, когда $page дойдёт до нуля..
    у меня останавливается, или бежит на месте по кругу на одной строке по $i
    (
     
  13. Kapon

    Kapon New Member

    Joined:
    5 Feb 2012
    Messages:
    0
    Likes Received:
    3
    Reputations:
    0
    Есть строчка в коде:

    o.classid = 'clsi'+'d:CAFEE'+'FAC-DEC'+'7-000'+'0'+'-0000-ABC'+'DEFFEDCBA';

    Если я заменю на

    o.classid = 'clsi'+'d:CAFEE'+'FAC-DEC'+'7-0'+'0'+'0'+'0'+'-0000-ABC'+'DEF'+'FED'+'CBA'

    Это будет одно и то же?? Будет правильно работать??
    Буду признателен за помощь.
     
    #20653 Kapon, 27 May 2012
    Last edited: 27 May 2012
  14. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    DeepBlue7, не работает. Тут два варианта, либо прокси магическая, либо не любит сервер мой.
    Можешь у себя попробовать: 83.172.1.150:3128
     
  15. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    PHP:
    $h fopen('1.txt','r');

    for(
    $page=0;$page<5;$page++)
    $i=fgets($h1024);
    Вы с Adio не родственники?
     
    2 people like this.
  16. 5w17ch3r

    5w17ch3r Member

    Joined:
    1 Dec 2008
    Messages:
    79
    Likes Received:
    11
    Reputations:
    0
    Подскажите кто-нибудь. Есть такая строка:
    PHP:
    header('Content-Disposition: attachment; filename="list.csv"; charset="windows-1251"');
    Дальше идет вывод содержимого файла.
    Проблема в том, что все редакторы, по умолчанию, открывают файл в UTF-8, и, соответственно, там ничего не понятно.
    Но если вручную указать кодировку cp1251, то файл читаемый.

    Как еще можно сформировать файл так, что бы потом он открывался в правильной кодировке?
     
  17. S26

    S26 New Member

    Joined:
    5 Apr 2008
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, я плохо очень знаю пхп, подскажите в какую сторону изучать, или может есть готовый скрипт. Нужен скрипт, который будет заходить каждые 3-5 минут на сайт, и оттуда копировать информацию, которая каждые 3-5 минут обновляется, записывать это в тхт, а если возможно то в exel. Подскажите в какую сторону копать или набросок скрипта может есть у кого
     
  18. -=Nikola=-

    -=Nikola=- New Member

    Joined:
    21 Oct 2011
    Messages:
    25
    Likes Received:
    3
    Reputations:
    0
    Привет всем!
    Как из одной формы, вставить в базу данных, на несколько столбцов.
    Например, есть форма, туда вставляем запись с таким разделителем ":"

    лаллал:еееее:зззззз
    11111:2222:3333

    .....
    Теперь нажимай кнопку, и это все летит в базу данных, только вставляется все это таким образом

    id | name | tel | email
    1 | лаллал | ее | зззззз
    2 | 11111 | 2222 | 3333


    INSERT INTO tablename ('name', 'tel', 'email') VALUES($_POST['lallal']);

    Такой запрос не пойдет, сами понимаете почему.
    Так вот вопрос профессионалам php, как так сделать? Подскажите
     
    #20658 -=Nikola=-, 28 May 2012
    Last edited: 30 Jun 2012
  19. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    396
    Likes Received:
    79
    Reputations:
    16
    PHP:
    $inp explode(':'$_POST['form_data'], 3);
    ......
    INSERT INTO tablename ('name''tel''email'VALUES($inp[0], $inp[1], $inp[2]);
    mysql_connect, mysql_query, фильтрация.
    Теперь понятно - вы все большая дружная семья :)
     
    #20659 AnGeI, 28 May 2012
    Last edited: 28 May 2012
    1 person likes this.
  20. Vinsik

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

    Joined:
    4 Oct 2008
    Messages:
    189
    Likes Received:
    4
    Reputations:
    -5
    Привет парни! Возникла проблема, пишем диплом.... Использовали частично готовое решение гостевой книги, переписывали ее. Дипломная работа требует подробное описание каждого файла... И так получилось что никто из нас незнает ООП =) Поможете разобраться что зачем и куда в классах?

    class.exception_member.php
    PHP:
    <?php


    class ExceptionMember extends Exception
    {
       
    // Имя не существующего члена
       
    protected $key;

       public function 
    __construct($key$message)
       {
          
    $this->key $key;

          
    // Вызываем конструктор базового класса
          
    parent::__construct($message);

        }

        public function 
    getKey()
        {
           return 
    $this->key;
        }
    }

    ?>
    class.exception_mysql.php
    PHP:
    <?php


    class ExceptionMySQL extends Exception
    {
       
    // Сообщение об ошибке
       
    protected $mysql_error;

       
    // SQL-запрос
       
    protected $sql_query;

       public function 
    __construct($mysql_error$sql_query$message)
       {
          
    $this->mysql_error $mysql_error;
          
    $this->sql_query $sql_query;

          
    // Вызываем конструктор базового класса
          
    parent::__construct($message);

       }

       public function 
    getMySQLError()
       {
          return 
    $this->mysql_error;
       }

       public function 
    getSQLQuery()
       {
          return 
    $this->sql_query;
       }
    }

    ?>
    class.exception_object.php
    PHP:
    <?php


    class ExceptionObject extends Exception
    {
       
    // Имя объекта
       
    protected $key;

       public function 
    __construct($key$message)
       {
          
    $this->key $key;

          
    // Вызываем конструктор базового класса
          
    parent::__construct($message);

       }

       public function 
    getKey()
       {
          return 
    $this->key;
       }
    }

    ?>
     
Loading...
Thread Status:
Not open for further replies.