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

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

Thread Status:
Not open for further replies.
  1. Духъ

    Духъ Banned

    Joined:
    3 Sep 2007
    Messages:
    89
    Likes Received:
    7
    Reputations:
    0
    посоветуйте хорошие ресурсы что бы разобраться с классами в php
     
  2. .::f-duck::.

    .::f-duck::. Member

    Joined:
    30 May 2009
    Messages:
    343
    Likes Received:
    32
    Reputations:
    7
    http://www.books.ru/shop/books/693675
     
  3. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    скажите кто из нас дебил, я или PHP
    PHP:
    $test '123test';
    $test2 intval($test);
    if(
    $test2 == $test) echo "$test2 == $test"; exit;
    123 == 123test

    PHP:
    $test 'fdsgdfgdf';
    $test2 intval($test);
    if(
    $test2 == $test) echo "$test2 == $test"; exit;
    0 == fdsgdfgdf

    КАК?! Как 123 может равняться 123test и 0 равняться fdsgdfgdf
    === не предлагать, типы не совпадут, true никогда не будет
    можно test2 в strval перевести, но мне непонятно КАК ОНО == ДЕЛАЕТ?!
     
    #16543 Ponchik, 30 Sep 2010
    Last edited: 30 Sep 2010
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ponchik читать тут: https://forum.antichat.ru/showpost.php?p=2285216&postcount=16250 и тут: https://forum.antichat.ru/showpost.php?p=2285338&postcount=16256
     
    _________________________
    1 person likes this.
  5. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Странно, что все удивляются результату сравнения, хотя удивляться надо было на второй строке кода. Просто при сравнении тот же intval вызывается неявно.
     
  6. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Ну вызови явно, тоже самое будет, вон Gifts раскрыл тему :rolleyes:
     
  7. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    intval($test) == intval($test);
    И что?
     
  8. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Помогите обработать ответ от яндех мыла. Дело в том, что у темы лебедева исходный год выглядит как хз что.
    PHP:
    $sock fsockopen("mail.yandex.ru"80$errno$errstr);
    if(!
    $sock) {
       echo 
    "Couldn't open socket!";
       return;
    }

    $headers  "GET /neo/search?addr=from&request={$search} HTTP/1.1\r\n";
    $headers .= "User-Agent: Opera\r\n";
    $headers .= "Cookie: {$user_cookie}\r\n"// тут sessid
    $headers .= "Host: mail.yandex.ru\r\n\r\n";

    fwrite($sock$headers);

    $line "";
    for (
    $i 0$i 61$i++){
       
    $line .= fgets($sock100500);
    }

    file_put_contents("data.txt"$line);
    echo 
    $user_cookie;

    fclose($sock);
    Собственно работает только так, и то с каким то мусором. Если делать цикл вайл до конца файла, то зависает. Если до 62, то тоже зависает. Как бы считать? Весь исходный код в 61строке... там в некоторых строчках по 20к знаков :D
     
  9. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    Может есть у кого скрипт случайной замены русских букв их английскими аналогами?
    Для рендомизации писем.
     
  10. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Прям случайной? Обычную замену написать 5 минут делов. Со случайной еще пару строчек дописать. Сделал бы, если не с телефона сидел
     
  11. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    llexus, да случайной. пример:

    Привет после обработки случайно заменит буквы р,е на английские p,e или не зщаменит, или только р или только е.
    И вот так весь текст
     
  12. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Могу словами написать. Создаем функцию, принимающую строку. Там создаем ассоциативный массив у которого ключи будут
    англ буквами, а значения русскими.
    Потом в цикле каждую букву проверяем на присутствие в массиве и заменяем на соответст ключ. Если рнд(0,10) больше скольки нам надо(ну это будет шанс замены)
     
    #16552 llexus, 1 Oct 2010
    Last edited: 1 Oct 2010
  13. FuZioN62

    FuZioN62 New Member

    Joined:
    5 Jun 2010
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Помогите скрипт парсер whois выдает ошибки(

    Подскажите почему в email.txt записываются пустые строчки((( а в браузере выходит ошибка:

    Code:
    Warning: set_time_limit() has been disabled for security reasons in /www/whois.php on line 9
    
    Notice: Undefined offset: 1 in /www/whois.php on line 26
    email для домена [URL=http://linic.ru]http://linic.ru[/URL] успешно спарсен.
    Code:
    <?php
    
    ignore_user_abort(true);
    set_time_limit (0);
    ini_set('max_execution_time',0);
    
    $file = file("domain.txt");
    $end = count($file);
     
    for ($i = 0; $i < $end; $i++)
    {
       $hc = curl_init();
       curl_setopt($hc, CURLOPT_RETURNTRANSFER, true);
       curl_setopt($hc, CURLOPT_USERAGENT, "Opera/9.61 (Windows NT 5.1; U; Edition Campaign 05; en) Presto/2.1.1");
       curl_setopt($hc, CURLOPT_COOKIEFILE, "cookie.tmp");
       curl_setopt($hc, CURLOPT_COOKIEJAR, "cookie.tmp");
       curl_setopt($hc, CURLOPT_URL, "http://ip-whois.net/whois.php?whois=".$file[$i]);
       $answer =  curl_exec($hc);
       preg_match("#e-mail:     (.*?)<br>#", $answer, $out);
       $fp = fopen('email.txt','a+');
       fputs($fp, $out[1]."\r\n");
       fclose($fp);
       curl_close($hc);
       echo "email для домена ".$file[$i]." успешно спарсен.<br>";
    }
    
    ?>
     
  14. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Значит на данном сервере эта функция запрещена изза соображений безопасности
     
  15. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    FuZioN62,
    регулярку юзаешь не рпавильную...
    у тебя
    Code:
    preg_match("#e-mail:     (.*?)<br>#", $answer, $out);
    а сайт выдаёт в таком виде

    Code:
    e-mail:&nbsp;&nbsp;&nbsp;&nbsp; [email protected]<br>
     
  16. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    Можно было без кУРЛа обойтись, вот мой вариант:
    PHP:
    <?php
    @ini_set('max_execution_time'0);
    @
    set_time_limit(0);

    $domains file('domain.txt');
    $domains array_map('trim'$domains);

    foreach (
    $domains as $dom) {

        
    $fp file_get_contents('http://ip-whois.net/whois.php?whois='.$dom);
        if(
    $fp) {
            if(
    preg_match('#e-mail:&nbsp;&nbsp;&nbsp;&nbsp; (.*)<br>#',$fp$matches)){
                echo 
    'Имейл спарсили: '.$matches[1].'<br>';
            } else {
                echo 
    'Не удалось отпарсить имейл для домена '.$dom.'<br>';
            }
        }

    }
    ?>
    Результат:
     
  17. NorB

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

    Joined:
    20 Jul 2007
    Messages:
    109
    Likes Received:
    12
    Reputations:
    -2
    нужно регулярное выражение для поиска подстроки в такой строке:
    — блаблабла: 1000.

    чтоб находило это число. Буду благодарен.
     
  18. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    /— \w+: (\d+)\./
     
  19. llexus

    llexus Member

    Joined:
    19 Sep 2010
    Messages:
    57
    Likes Received:
    6
    Reputations:
    10
    Добрался до компа, вот что вышло
    PHP:
    <?php
    function rus_eng($strIn){
       
    $rus = Array("а""с""е""р""о"); //массив русских букв
       
    $eng = Array("a""c""e""p""o"); //массив соответствующих англ. замен
       
    $chance 70//шанс замены в процентах
       
    for($i 0$i strlen($strIn); $i++){
          if(
    $idx array_search($strIn{$i}, $rus)) //регистроЗависимый поиск
             
    if(rand(1,100) <= $chance)
                
    $strIn{$i} = $eng[$idx];
       }
       return 
    $strIn;
    }

    echo 
    rus_eng("проверка замены");

    ?>
    Мой вопрос остается открытым(

     
    #16559 llexus, 2 Oct 2010
    Last edited: 2 Oct 2010
    1 person likes this.
  20. roxblnfk

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

    Joined:
    6 Feb 2010
    Messages:
    189
    Likes Received:
    42
    Reputations:
    19
    1
    PHP:
    function rus_eng($strIn){
       
    $rus = Array('а''с''е''р''о'); //массив русских букв
       
    $eng = Array('a''c''e''p''o'); //массив соответствующих англ. замен
       
    return str_replace($rus$eng$strIn); // и не надо самопальных циклов
    }
    2
    тебе надо нормально прочитать ответ от начала до конца?
    (под словом мусор ты наверное подразумеваешь заголовки HTTP? :) )
    тогда поробуй кусок моей функции:
    PHP:
            $Str=''// аналог твоего $line
            
    if($ByteLimit>0){ // если загрузить конкретное число байтов
                
    $Downed=0;
                
    set_time_limit(5); // не знаю откуда это взялось :) но пусть будет...
                
    while(!feof($sock) && $Downed<$ByteLimit){
                    
    $Str.=fread($sock$ByteLimit-$Downed);
                    
    $Downed=strlen($Str);
                }
            }elseif(
    $ByteLimit<0){ while(!feof($sock)){ $Str.=fgets($sock512); } }
            
    //fclose($sock);
    upd: если $ByteLimit < 0 то загружается вся страница, иначе указанное число байт (при нуле не читает ответ)
     
    #16560 roxblnfk, 2 Oct 2010
    Last edited: 2 Oct 2010
    1 person likes this.
Thread Status:
Not open for further replies.