Php ,xml проблема с кодировкой и не обрабатывает "&" кто поможет ?

Тема в разделе "Как сделать...", создана пользователем joni666, 6 фев 2012.

  1. joni666

    joni666 Постоялец

    Регистр.:
    30 окт 2007
    Сообщения:
    67
    Симпатии:
    15
    Решил сделать вывод rss с модуля Dletrack
    Нашол скрипт для создания rss ленты..
    Всё работает ток переменные отдают не в той кодировки .. =( может кто подскажет в чём проблема ?

    Код:
    <?php
     
    define( 'DATALIFEENGINE', true );
    define( 'ROOT_DIR', '..' );
    define( 'ENGINE_DIR', dirname( __FILE__ ) );
     
    @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
    @ini_set ( 'display_errors', true );
    @ini_set ( 'html_errors', false );
    @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
     
    if( $config['http_home_url'] == "" ) {
     
        $config['http_home_url'] = explode( "engine/mp3rss.php", $_SERVER['PHP_SELF'] );
        $config['http_home_url'] = reset( $config['http_home_url'] );
        $config['http_home_url'] = "http://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
     
    }
    include_once ENGINE_DIR . '/modules/functions.php';
     
    // Прежде всего нужно указать, что файл будет в XML формате
    header('Content-type: application/xml');
     
    /* Затем впишем вступительную информацию
    кто мы, адрес самого ресурса, электронный адрес веб-мастера и тому подобное */
    $data="<?xml version=\"1.0\" encoding=\"windows-1251\" ?> ";
    $data.= "<rss version=\"2.0\" encoding=\"windows-1251\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
    $data.= "<channel>";
    $data.= "<title>Mp3Woober - Популярна mp3 Музыка бесплатно и без регистрации mp3 новинки слушать Ежечасные обновления. Хит-парады и рейтинги.</title>";
    $data.= "<link>http://mp3woober.ru/</link>";
    $data.= "<description>Наш Сервис, позволяющий скачать музыку бесплатно и без регистрации! Мы даём возможность всем желающим, без лишних проблем скачать бесплатно музыку mp3 в хорошем качестве, на высокой скорости.</description>";
    $data.= "<copyright>Woober</copyright>";
    $data.= "<language>ru</language>";
    $data.= "<managingEditor>e-mail редактора</managingEditor>";
    $data.= "<webMaster>jyvvi@ya.ru</webMaster>";
     
    /* Подключимся к нашей базе данных имя пользователя базы, пароль, название самой базы */
    $link = mysql_connect ("localhost", "root", "123456") or die("Невозможно соединиться!");
     
    mysql_select_db("woobermp3", $link);
     
    $query="SELECT * FROM mp3_dt_tracks ORDER BY id DESC";
     
    $result = mysql_query($query, $link);
     
    //пройдемся по двадцати последним вытаскивая, то что нам нужно
    for ($i=1; $i<10; $i++)
    {
     
    // Вытягиваем нужные нам колонки
    $row = mysql_fetch_array($result);
    $date = $row['date'];
    $id = $row['id'];
    $title = $row['title'];
    $artist = $row['artist'];
    $text = $row['text'];
    $author = $row['uploader_name'];
    $genre = $row['tags_genre'];
    $size = $row['file_size'];
    $bitrate = $row['tags_bitrate'];
    $time = $row['upload_time'];
     
     
     
    // Добавляем нужную нам информацию в такую структуру:
    $data.="<item>";
    $data.="<title>".$artist.  " - "  .$title."</title>";
    $link_short = 'music/track/'.totranslit( $row['artist'] ).'/'.$row['id'] .'-'. totranslit( $row['title'] ) . '/';
    $data.= "<link>http://mp3woober.ru/".$link_short." </link>";
    $data.= "<category>Pop</category>";
    $data.="<description>Трек " .$title." от исполнителя ".$artist.  " в формате Mp3,  размер - ".$size."Кb, Битрейт ".$bitrate.". Можете прослушать или скачать Mp3 трек ".$artist.  " - "  .$title." , совершенно бесплатно! и без регистрвции. Мы даём возможность всем желающим, без лишних проблем скачать бесплатно музыку mp3 в хорошем качестве, на высокой скорости. Без раздражающей всплывающей рекламы.</description>";
    $data.="<dc:creator>".$author."</dc:creator>";
    $data.="<dc:date> </dc:date>\n</item>";
    }
     
    // И, наконец, закрываем базу
    mysql_close($link);
     
    // Добавляем «хвостовую» информацию
    $data=$data."</channel></rss>";
     
    // Выводи это всё
    print($data);
    ?>
    _ttp://mp3woober.ru/engine/mp3rss.php

    и ещё бывает выдаёт ошибку когда в Тайтле встречается символ "&"
     
  2. d1mka

    d1mka Постоялец

    Регистр.:
    20 мар 2007
    Сообщения:
    92
    Симпатии:
    23
    Попробуй
    после mysql_select_db("woobermp3", $link);
    mysql_query('SET NAMES cp1251')
     
    joni666 нравится это.
  3. joni666

    joni666 Постоялец

    Регистр.:
    30 окт 2007
    Сообщения:
    67
    Симпатии:
    15
    Спасибо.
    ся норм =)