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

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

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

    v1149906 New Member

    Joined:
    1 Jan 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    включенно =))
     
  2. v1149906

    v1149906 New Member

    Joined:
    1 Jan 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    уж это то я знаю у меня всегда куки в рабочем состоянии
    а проблемма со скриптом лучше скажи какой те скрипт скинуть чтоб ты мне поверил что там что то нетак
     
  3. ZERO-Y

    ZERO-Y Elder - Старейшина

    Joined:
    28 Mar 2006
    Messages:
    85
    Likes Received:
    16
    Reputations:
    3
    Есть файл 1.txt с правами 666, надо скрипт который бы очищал содержимое этого файла.
    site.com/1.txt - файл с текстом
    site.com/clear.php - скрипт который бы очищал 1.txt
    Буду благодарен за помощь, с меня +.
     
  4. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    PHP:
    fclose(fopen('1.txt','w'));
     
    1 person likes this.
  5. Maxxxtri23

    Maxxxtri23 New Member

    Joined:
    20 Dec 2008
    Messages:
    76
    Likes Received:
    1
    Reputations:
    0
    Как в этом скрипте реализовать работу с 2 сокетами?
    PHP:
    <?php
    error_reporting
    (E_ALL);

    /* Позволить сценарию зависнуть вокруг ожидания подключений */
    set_time_limit(0);

    /* Включить неявный вывод, так что мы видим то, что мы получаем
     * когда это приходит . */
    ob_implicit_flush();

    $address '127.0.0.1';
    $port 10000;

    if ((
    $sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
        echo 
    "socket_create() failed: reason: " socket_strerror($sock) . "\n";
    }

    if ((
    $ret socket_bind($sock$address$port)) < 0) {
        echo 
    "socket_bind() failed: reason: " socket_strerror($ret) . "\n";
    }

    if ((
    $ret socket_listen($sock2)) < 0) {
        echo 
    "socket_listen() failed: reason: " socket_strerror($ret) . "\n";
    }

    do {
        if ((
    $msgsock socket_accept($sock)) < 0) {
            echo 
    "socket_accept() failed: reason: " socket_strerror($msgsock) . "\n";
            break;
        }
        
    /* Send instructions. */
        
    $msg "\nWelcome to the PHP Test Server. \n" .
            
    "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
        
    socket_write($msgsock$msgstrlen($msg));

        do {
            if (
    false === ($buf = @socket_read($msgsock2048PHP_NORMAL_READ))) { 
                echo 
    "Client diconnected.\n"
                break; 
            }
            if (!
    $buf trim($buf)) {
                continue;
            }
            if (
    $buf == 'quit') {
                break;
            }
            if (
    $buf == 'shutdown') {
                
    socket_close($msgsock);
                break 
    2;
            }
            
    $talkback "PHP: You said '$buf'.\n";
            
    socket_write($msgsock$talkbackstrlen($talkback));
            echo 
    "$buf\n";
        } while (
    true);
        
    socket_close($msgsock);
    } while (
    true);

    socket_close($sock);
    ?>
    Попробовал нубским способом просто скопировать функции вот так:
    PHP:
    <?php
    error_reporting
    (E_ALL);

    /* Позволить сценарию зависнуть вокруг ожидания подключений */
    set_time_limit(0);

    /* Включить неявный вывод, так что мы видим то, что мы получаем
     * когда это приходит . */
    ob_implicit_flush();

    $address '127.0.0.1';
    $port 10000;

    $addressa '127.0.0.1';
    $porta 10001;

    //-----------------------------------------------------------------------------Создаем сокет
    if (($sock socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
        echo 
    "socket_create() failed: reason: " socket_strerror($sock) . "\n";
    }

    if ((
    $socka socket_create(AF_INETSOCK_STREAMSOL_TCP)) < 0) {
        echo 
    "socket_create() failed: reason: " socket_strerror($socka) . "\n";
    }

    //-----------------------------------------------------------------------------Биндим сокет
    if (($ret socket_bind($sock$address$port)) < 0) {
        echo 
    "socket_bind() failed: reason: " socket_strerror($ret) . "\n";
    }

    if ((
    $reta socket_bind($socka$addressa$porta)) < 0) {
        echo 
    "socket_bind() failed: reason: " socket_strerror($reta) . "\n";
    }

    //-----------------------------------------------------------------------------Слушаем сокет
    if (($ret socket_listen($sock2)) < 0) {
        echo 
    "socket_listen() failed: reason: " socket_strerror($ret) . "\n";
    }

    if ((
    $reta socket_listen($socka2)) < 0) {
        echo 
    "socket_listen() failed: reason: " socket_strerror($reta) . "\n";
    }



    do {
        if ((
    $msgsock socket_accept($sock)) < 0) {
            echo 
    "socket_accept() failed: reason: " socket_strerror($msgsock) . "\n";
            break;
        }
        
    /* Send instructions. */
        
    $msg "\nWelcome to the PHP Test Server. \n" .
            
    "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
        
    socket_write($msgsock$msgstrlen($msg));

        
            if ((
    $msgsocka socket_accept($socka)) < 0) {
            echo 
    "socket_accept() failed: reason: " socket_strerror($msgsocka) . "\n";
            break;
        }
        
    /* Send instructions. */
        
    $msga "\nWelcome to the PHP Test Server. \n" .
            
    "To quit, type 'quit'. To shut down the server type 'shutdown'.\n";
        
    socket_write($msgsocka$msgastrlen($msga));

        do {
            if (
    false === ($buf = @socket_read($msgsock2048PHP_NORMAL_READ))) { 
                echo 
    "Client diconnected.\n"
                break; 
            }
            if (
    false === ($bufa = @socket_read($msgsocka2048PHP_NORMAL_READ))) { 
                echo 
    "Client diconnected.\n"
                break; 
            }
            if (!
    $buf trim($buf)) {
                continue;
            }
            if (
    $buf == 'quit') {
                break;
            }
            if (
    $buf == 'shutdown') {
                
    socket_close($msgsock);
                break 
    2;
            }
            
    $talkback "PHP: You said '$buf'.\n";
            
    $talkbacka "PHP: You said '$bufa'.\n";
            
    socket_write($msgsock$talkbackstrlen($talkback));
            
    socket_write($msgsocka$talkbackastrlen($talkbacka));
            echo 
    "$buf\n";
            echo 
    "$bufa\n";
        } while (
    true);
        
    socket_close($msgsock);
        
    socket_close($msgsocka);
    } while (
    true);

    socket_close($sock);
    socket_close($socka);
    ?>
    Ну и естесственно работает или 1 сокет или 2, хотя коннекты принимает от 2х сразу
     
  6. ZERO-Y

    ZERO-Y Elder - Старейшина

    Joined:
    28 Mar 2006
    Messages:
    85
    Likes Received:
    16
    Reputations:
    3
    Спасибо, скрипт работает! m0Hze, WNZRS + :)
     
  7. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    Было задумано с помошю прегмача выташить одну строчку прегмач был зделан 100% правельно но он нечего ненахадил потом я убрал условия прегмачя тоесть чтоб выводил в echo всё что есть на страницы а он мне выдовал всего лиш HTTP/1.1 200 OK в место длиного кода страницы! Помогите плззз.... :confused:
    Это код с прегмачям
    PHP:
        $get curl_init("http://web.web");
    curl_setopt($getCURLOPT_RETURNTRANSFER1);
    curl_setopt($getCURLOPT_USERAGENT'Opera/9.25 (Windows NT 5.1; U; ru)');
    $headers = array
    (
        
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        
    'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
        
    'Accept-Encoding: gzip,deflate',
        
    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'

    ); 
    curl_setopt($getCURLOPT_REFERER'http://web.web');
    curl_setopt($getCURLOPT_HEADER1);
    curl_setopt($get CURLOPT_PROXY$proxy);
    curl_setopt($getCURLOPT_FOLLOWLOCATION1);
    curl_setopt($getCURLOPT_COOKIEFILE'cookie.txt');
    curl_setopt($getCURLOPT_COOKIEJAR'cookie.txt');
        
    $wp curl_exec($get);
    curl_close($get);


    preg_match('#(.*)#'$wp$idzz222);
    $idzzx22 $idzz222[1];
        echo 
    "t idddd $idzzx22\n";
    echo 
    "Found on page [$id]\n";
    А вот что выдоёт http headers...
    PHP:
    http://web.ru/video?id=khkY2kkAkkkk
    GET /video?id=khkY2kkAkkkk HTTP/1.1
    Host
    web.ru
    User
    -AgentMozilla/5.0 (WindowsUWindows NT 5.1rurv:1.9.1.7Gecko/20091221 Firefox/3.5.7
    Accept
    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding: gzip,deflate
    Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive: 300
    Connection: keep-alive
    Referer: http://web.ru/new/video
    Cookie: webru=5600dfc1315ec9589b00b90768e949d3; __utma=161392741.1852195239.1258833076.1262886754.1262889524.29; __utmz=161392741.1258833076.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca29837b2e97dc28d061; __utmc=161392741; __utmb=161392741.1.10.1262889524

    HTTP/1.x 200 OK
    X-Powered-By: PHP/5.2.8
    Set-Cookie: webruuic=56ca04287e3aaa506c1ea1668b4edcf12b1b3cca29837b2e97dc28d061; expires=Tue, 09-Aug-2011 11:32:08 GMT; path=/; domain=.web.ru
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Content-Type: text/html; charset=utf-8
    Transfer-Encoding: chunked
    Date: Thu, 07 Jan 2010 18:38:48 GMT
    Server: lighttpd/1.4.23
     
    #13427 KrafT, 7 Jan 2010
    Last edited: 7 Jan 2010
  8. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    PHP:
    preg_match('#(.*)#'$wp$idzz222); 
    $idzzx22 $idzz222[1]; 
        echo 
    "t idddd $idzzx22\n";
    У меня мозг рушится когда я такое вижу, да еще и
    PHP:
    $headers = array 

        
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
        
    'Accept-Language: ru,en-us;q=0.7,en;q=0.3'
        
    'Accept-Encoding: gzip,deflate'
        
    'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
        
    'Accept-Encoding: gzip,deflate'
    ); 
     
  9. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    я здесь один ничего непонял????, в чем проблемма? в том что cURL составлен неверно ? кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? или регулярка- в которой я так и не понял что хотели выдернуть- насколько я понял (.*) -это может быть все что угодно , ты хоть напиши что ты пытаешся от скрипта добиться- судя по скрипту ты с сайта http://web.web пытаешся выдернуть первоепопавшееся слово (кстати для чего тут курл был заюзан- для меня загадка)


    P.S. Если тебе надо подключиться к внешнему сайту и дернуть из него что то то для подключения используй функцию file_get_contents ну а регулярку.......скажи что надо те дернуть оттуда и тебе помогут

    как то так это делаеться
    PHP:
    <?php 
     
    $b 
    =file_get_contents('тут адрес сайта из которого тебе надо дернуть строичку или что там у тя'); 

    preg_match_all(здесь правильную регулярку $bt$a); 

    $arr $a[0]; 
      
    foreach(
    $arr as $value)   
      {   
         echo 
    "$value <br />";   
      }  

    ?> 

    все- весь код
     
    #13429 Kusto, 7 Jan 2010
    Last edited: 7 Jan 2010
    2 people like this.
  10. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    Дану брось это бред с file get kontents с курлом проше ... а курл составлен правелно поверь... кстати а что можно ждать от курла в котором curl_init("http://web.web"); ??? а можэт я просто нехачю чтоб вы знали веб для которого эт всё ... А что дёрнут это тут необязателно поверь ну есле так надо держы
    PHP:
    preg_match('#t_id=([0-9]*)#'$wp$idzz22s);
    $idzzx2s $idzz22s[1];
        echo 
    "t_id = $idzzx2s\n";
    И вобше ты всё читал чё я написал ? :D жош
    А проблема в том что он находен HTTP/1.1 200 OK в web.web в место кода страницы... тк можэт она переносится кудата или чё я дажэ незнаю но когда заходеш на web.web чэрез мозилу сылка неменяется такойжэ и остоётся Помогите плз ктонибудь
     
    #13430 KrafT, 8 Jan 2010
    Last edited: 8 Jan 2010
  11. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    если тебе нужен Курл для подключения к вебстранице и ты говориш file_get_contents-бред, то я умываю руки.....

    P.S Или я правдо что то непонял??????
     
  12. e[X]theta[M]ine

    Joined:
    21 Dec 2009
    Messages:
    0
    Likes Received:
    18
    Reputations:
    16
    Kusto, солидарен с твоим мнением.
    KraFT, зачем тебе нужен именно Curl, если можно сделать проще - file_get_conents?
     
  13. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    PHP:
     $get curl_init("http://web.web"); 
    ну так это и есть можно сказать file get kontents :) наверное чтото непонел :mad: ну в предведушем мсг я всё подробно разсказал перечитай думаю поймёш
     
  14. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    то что у меня весь скрипт на курле... да и в принцыпе без разницы так как проблема не в том... Так как в мозиле делаеш ctrl+u там есть код а когда с $get = curl_init("http://web.web"); то там пустой код в нём только это HTTP/1.1 200 OK с file_get_conents будет тожэ самое...
     
    #13434 KrafT, 8 Jan 2010
    Last edited: 8 Jan 2010
  15. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    причем здесь весь скрипт))), ладно тогда почитай значение этой функции curl_close($get); т е Завершает сеанс CURL и освобождает ресурсы. Дескриптор get ( в твоем случае) также уничтожается
     
  16. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    хз хз тк я невпервые делаю прегмач с курла и нечэго неуничтожается =[
     
  17. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    лан хочеш так- делай так только например функция curl_exec($get); выведет страницу в браузер а ты используеш CURLOPT_RETURNTRANSFER с функцией curl_setopt() которая возвращает результат обработки (в твоем случае это 200 ОК)
     
  18. KrafT

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

    Joined:
    29 Nov 2004
    Messages:
    62
    Likes Received:
    2
    Reputations:
    0
    Воо спс болшое :) + ;)
     
  19. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Как сделать так чтобы при заходе на страницу записывалось число заходов в текстовый документ?

    p.s ссори за такой тупой вопрос просто я php вообще не знаю
     
  20. Kusto

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

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    PHP:
    ?php

    $ip 
    $_SERVER["REMOTE_ADDR"]; // IP
    $Data date("d-m-y H:i:s"time()); // Дата и время
    $Browser getenv("HTTP_USER_AGENT");
    $Port getenv("REMOTE_PORT");
    $Connect $_SERVER['HTTP_CONNECTION'];
    $Host gethostbyaddr(getenv("REMOTE_ADDR")); 
    $text "[$Data] Browser:[$Browser] Port:[$Port] Connect:[$Connect] Host:[$Host] IP:$ip ";
    $filelog fopen("base.php","a+"); //открываем файл базы
    fwrite($filelog,"\n $text \n"); //записываем всё
    fclose($filelog); //закрываем


    ?>

    как то так
     
Thread Status:
Not open for further replies.