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

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

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

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    да , rss.php работает, вопрос куда новостьи запичывать? В XML? Если да то почему опера не отображает новости из xml?
     
  2. Jer1cho

    Jer1cho Member

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    65
    Reputations:
    10
    Ничо не понял. Новости у тебя в rss.php? Или у тебя он генерирует новости и пишет в xxx.xml? Может опере надо заголок передавать.. если в xml попробуй в .htaccess прописать Addtype application/x-httpd-php .xml и в xml дописать в начало <? header("Content-type: application/rss+xml"); ?> ну и если не в xml то в .php допиши...
     
  3. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Моя задача повесить на сайт rss , читал сдесь http://www.caseclub.ru/articles/webrss.html. Всё так и сделал но новостей 0! Как их добавить? Их в базу вбивать или в xml? Ни чего непойму. HELP ME PLIS!!!
     
  4. Nek1t

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

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    mff
    Сначала в базу вбиваешь, а потом PHP-скрипт "на лету" формирует RSS, выдергивая контент из базы. Вроде так... :rolleyes:
     
    #3784 Nek1t, 1 Jul 2008
    Last edited: 1 Jul 2008
  5. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Ни че непойму, это что нужно еще админку к базе писать? Как новости добавить? HELP ME!
     
  6. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    берешь phpmyadmin к примеру. через него добавляешь в нужную таблицу новости, потом скриптом берешь данные из таблицы и формируешь rss.
     
  7. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    :) Я то возьму, а как люди которым делаю будут добавлять? И для чего нужен xml файл?
     
  8. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    скриптом новости выводи, боже мой. доки нуно внимательнее читать
     
  9. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Как вывести новости из xml ? Уже от мануала голова кругом :(

    rss.inc
    PHP:
    <?php
    /*   CRss версия 1.0 от 02.01.2007
    *    класс для создания каналов новостей RSS
    *    http://www.caseclub.ru
    *    используйте без ограничений
    */
    class CRss
    {
     var 
    $Title;          // заголовок канала
     
    var $Link;           // ссылка на главную страницу
     
    var $Copyright;      // копирайт
     
    var $Description;    // описание канала
     
    var $LastBuildDate;  // дата последнего документа (по умолчанию текущая)
     
    var $Language;        // язык
     
    var $PubDate;        // дата публикации
     
    var $ManagingEditor;  // E-mail редактора
     
    var $WebMaster;      // E-mail webmaster
     
    var $Category;       // категория

     
    var $Query;          // содержимое запроса
     
    var $Connect;           // для соединения с базой данных
     
    var $Result;         // для хранения результата

     
    function Translate($text)    // кодируем для вывода
     
    {


        
    $trans = array("<" => "&lt;"">" => "&gt;",'"' => "&quot;","&" => "&amp;");
        
    $text=strtr($text,$trans);
        
    $array=explode("<br>",$text);
        
    $count=count($array);
        return 
    $text;

     }

     function 
    Query()
     {
       
    $this->Result mysql_query($this->Query) or die("Query failed");
     }
     function 
    Open($Server,$DataBase,$Login,$Password)    // открыть MySql
      
    {
      
    $this->Connect mysql_connect($Server$Login$Password ) or die("Could not connect");
              
    mysql_select_db($DataBase) or die("Could not select database");

      }
      function 
    Close()  // закрыть MySql
      
    {
         
    mysql_free_result($this->Result);
         
    mysql_close($this->Connect);
      }


     function 
    PrintHeader()   // печать заголовка
     
    {
          
    header("Content-Type: application/xml ");   // сразу говорим, что это формат XML
           
    $RN="\r\n";
          
    $End="?";
          
    $Date=date("r");   // дата в формате Mon, 25 Dec 2006 10:23:37 +0400
          
    print "<$End";
          print 
    "xml version=\"1.0\" encoding=\"windows-1251\" $End$RN";
          print 
    "<rss version=\"2.0\">$RN";
          print 
    "   <channel>$RN";
          print 
    "       <title>$this->Title</title>$RN";
          print 
    "       <category>$this->Category</category>$RN";
          print 
    "       <link>$this->Link</link>$RN";
          print 
    "       <copyright>$this->Copyright</copyright>$RN";
          print 
    "       <description>$this->Description</description>$RN";
          print 
    "       <lastBuildDate>$this->LastBuildDate</lastBuildDate>$RN";
          print 
    "       <language>$this->Language</language>$RN";
          print 
    "       <pubDate>$this->PubDate</pubDate>$RN";
          print 
    "       <docs>http://site.ru/rss</docs>$RN";
          print 
    "       <managingEditor>$this->ManagingEditor</managingEditor>$RN";
          print 
    "       <webMaster>$this->WebMaster</webMaster>$RN";
    }
     function 
    PrintBody($Title,$Link,$Description,$Category,$PubDate)   // печать тела
    {
           
    $RN="\r\n";
          
    //$Title =$this->Translate($Title);
          //$Link =$this->Translate($Link);
          
    $Description =$this->Translate($Description);
          print 
    "              <item>$RN";
          print 
    "                <title>$Title</title>$RN";
          print 
    "                 <link>$Link</link>$RN";
          print 
    "                 <description>$Description</description>$RN";
          print 
    "                 <category>$Category</category>$RN";
          print 
    "                 <pubDate>$PubDate</pubDate>$RN";
          print 
    "                 <guid>$Link</guid>$RN";
          print 
    "              </item>$RN";
    }
     function 
    PrintFooter()   // печать заголовка
     
    {
        print 
    "   </channel>$RN";
        print 
    "</rss>$RN";
     }


    }
    ?>
    rss.php
    PHP:
    <?php
         
    // начало программы
         
    include "rss.inc";           // это собственно класс
         
    include "conn.inc";           // переменные для открытия базы
         

       
    $Rss= new CRss();

       
    $Rss->Title="RSS Мой сайт";
       
    $Rss->Link="http://site.ru/rss/";
       
    $Rss->Copyright="© .";
       
    $Rss->Description="Описание";
       
    $Rss->Category "Разработка программного обеспечения";
       
    $Rss->Language="ru";

       
    $Rss->ManagingEditor="[email protected]";
       
    $Rss->WebMaster="[email protected]";
       
    $Rss->Query="SELECT
                    BLOG.title,
                    BLOG.description,
                    BLOG.link,
                    BLOG.date,
                    BLOG.category
         FROM BLOG
         ORDER by DATE desc Limit 0,20"
    ;

        
    $Rss->Open($Server,$DataBase,$Login,$Password);
         
    $Rss->LastBuildDate=date("r");
          
    // получаем последнюю дату публикации
         
    $query "select BLOG.DATE
                            FROM BLOG
              ORDER by BLOG.date desc Limit 0,1"
    ;

          
    $result1 mysql_query($query)
                  or die(
    "FROM blog failed");

          
    $line mysql_fetch_array($result1);

          
    $Date =date("r",strtotime($line[0]));
           
    mysql_free_result($result1);

          
    $Rss->LastBuildDate=$Date;
          
    $Rss->PubDate=$Rss->LastBuildDate;

         
    $Rss->PrintHeader();
         
    $Rss->Query();

         while (
    $line mysql_fetch_array($Rss->Result))
         {   
    // для каждой записи выведем
                   
    $Title $line[0];
                   
    $Description $line[1];
                   
    $Link=$line[2];
                   
    $PubDate=date("r",strtotime($line[3]));
                   
    $Category=$line[4];
                   
    $Rss->PrintBody($Title,$Link,$Description,$Category,$PubDate);
        }
        
    $Rss->PrintFooter();
        
    $Rss->Close();

    ?>
    rss.xml
    HTML:
     <?xml version="1.0" encoding="UTF-8" ?> 
      <rss version="2.0">
       <channel>
         <title>Моя лента новостей</title> 
         <link>http://www.моя_лента.ru</link> 
         <description>Самый лучший блог на свете</description> 
         <lastBuildDate>Sat, 30 Dec 2006 00:00:00 +0300</lastBuildDate> 
         <item>
             <title>С Новым Годом!</title> 
             <link>http://www.моя_лента.ru/new1.html</link> 
             <description>Поздравляем всех читателей с Новым Годом</description> 
         </item>
       </channel>
      </rss>
    Табличка в базе
    Code:
    CREATE TABLE BLOG ( ID int(11) NOT NULL default '0', title varchar(50) default NULL, description text default NULL, link varchar(200) default NULL, date date default NULL, category varchar(100) NOT NULL default '', ab varchar(10) NOT NULL default '', PRIMARY KEY (ID) ) TYPE=MyISAM;
     
  10. l0l1k

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

    Joined:
    27 Jan 2008
    Messages:
    33
    Likes Received:
    4
    Reputations:
    -1
    можете обяснить чо такое class в php? мне совсем из учебников не понятно ((((
    эта типа функций?
    к обяснению я бы не против что бы написали пример в паскале. может через него пойму.
     
    #3790 l0l1k, 2 Jul 2008
    Last edited: 2 Jul 2008
  11. PHPoozy

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

    Joined:
    1 Jul 2008
    Messages:
    149
    Likes Received:
    31
    Reputations:
    -22
    class - это конструкция задающая образец по которому будет построен объект
     
  12. l0l1k

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

    Joined:
    27 Jan 2008
    Messages:
    33
    Likes Received:
    4
    Reputations:
    -1
    такое я и в учебнике вижу
    мне надо чтоб обяснили совсем на пальцах :rolleyes:
     
  13. PHPoozy

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

    Joined:
    1 Jul 2008
    Messages:
    149
    Likes Received:
    31
    Reputations:
    -22
    _http://www.killerphp.com/videos/oop_objects_and_classes/objects_and_classes.html
     
  14. nbd

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

    Joined:
    27 Oct 2006
    Messages:
    81
    Likes Received:
    26
    Reputations:
    3
    По просьбам трудящихся.

    Вот смоти у тебя на руке есть 5 объектов "палец", каждый палец имеет определенный набор свойств и методов. Допустим:

    PHP:
    класс палец{
                      var 
    $длина;    //это
                      
    var $ширина;    //свойства 
                      
    var $цвет="телесный";  //пальца
                      
    var $название;
                      var 
    $положение=0;           //текущее положение пальца, то есть палец не согнут.
                      
    function сгибание_пальца($угол) {   //сгибание_пальца это метод работы с обектом палец.
                      
    this->положение=this->положение+$угол;
                      if (
    this->положение<0) {echo "Чувак, ты сломал палец!";} else {echo "ты согнул палец на $угол градусов";}
                      }
                      function 
    рост_пальца($прирост_длины$прирост_ширины) {   
                      .......
                      } 
                      function 
    изменение_имени_пальца($новое_имя) {   
                      ................
                      }
                      function 
    изменение_цвета_пальца($цвет) {  
                      .....................
                      }
    }
    На основании этого класса ты, например, можешь создать объект "указательный палец" и используя методы(функции класса) менять свойства(переменные класса) объекта палец.
    Думаю данное объяснение может и образно не на пальцах, но зато, на пальцах фактически (=
     
    #3794 nbd, 2 Jul 2008
    Last edited: 2 Jul 2008
    2 people like this.
  15. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    кусочек из html кода
    Code:
    <option value="hersteller1">ALFA ROMEO</option>
    <option value="hersteller2">ALPINE</option>
    <option value="hersteller3">ARO</option>
    <option value="hersteller4">AUDI</option>
    <option value="hersteller5">AUSTIN</option>
    <option value="hersteller6">AUTO UNION</option>
    
    мне надо выдрать из этого
    Code:
    ALPINE
    ARO
    AUDI
    AUSTIN
    AUTO UNION
    какое регулярное выражение мне для этого использовать?
     
  16. nbd

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

    Joined:
    27 Oct 2006
    Messages:
    81
    Likes Received:
    26
    Reputations:
    3
    А зачем тебе здесь регулярка? Вполне хватит
    PHP:
    $filename="test.txt";
    $buff=file_get_contents($filename);
    echo 
    strip_tags($buff,"<br>");
    а если нужна регулярка то вот:
    /[A-Z\s*]+/
     
    #3796 nbd, 2 Jul 2008
    Last edited: 2 Jul 2008
    1 person likes this.
  17. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    А она правильная?
    PHP:
    <?php 
    $file 
    file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en'); 
    $pattern "/[A-Z\s*]+/"
    preg_match_all($pattern,$file,$matches);  
    //print_r($matches); 
    //echo strip_tags($file);
    foreach($matches[1] as $link) echo $link.'<br>'
    ?>
    почему то ничего не выдает((
     
  18. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    попробоуй \s убрать. что тогда будет?
     
  19. !{ra!{e/\/

    !{ra!{e/\/ Banned

    Joined:
    27 Aug 2007
    Messages:
    98
    Likes Received:
    50
    Reputations:
    3
    все так же(((..ничего не выдает((
     
  20. nbd

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

    Joined:
    27 Oct 2006
    Messages:
    81
    Likes Received:
    26
    Reputations:
    3
    дело не в \s та регулярка была для куска хтмл кода, что ты привел
    а тебе для выковыривания лишних тегов нужна эта ;)

    />([A-Z\s*]+)</

    и отфильтруй потом массив от пустых значений.

    PHP:
    <?php  
    $file 
    file_get_contents('http://www.aamkatalog.ctapps.de/aam_katalog.pl?action=kfzsearch&lang=en');  
    $pattern "/>([A-Z\s*]+)</";  
    preg_match_all($pattern,$file,$matches);   
    $matches[1]=array_unique($matches[1]);
    foreach(
    $matches[1] as $link) echo $link.'<br>';  
    ?>
     
    #3800 nbd, 2 Jul 2008
    Last edited: 2 Jul 2008
Thread Status:
Not open for further replies.