
01.03.2008, 18:59
|
|
Познавший АНТИЧАТ
Регистрация: 07.01.2007
Сообщений: 1,263
Провел на форуме: 3326855
Репутация:
702
|
|
Народ, в чём прикол? На моём сайте работал RSS парсер. Работал давно и исправно. Но несколько дней назад перестал. Стал выдавать:
XML error: not well-formed (invalid token) at line 3
В скрипте 3-я строка это session_start()
Ничего не пойму. Пытался и другой RSS фид ему скормить... Нифига не помогло. Вот сайт скрипт:
PHP код:
<?php
header( "Content-type: text/html; charset=UTF-8" );
error_reporting(E_ALL);
require_once( "./inc/Common.inc" );
$HTML_NEWS['text'] = "";
$HEADER = "Новости";
$type = isset($_REQUEST['type']) ? $_REQUEST['type'] : "menu";
$coli4 = isset($_REQUEST['num']) ? $_REQUEST['num'] : 3;
if($coli4 > 10)
$coli4 = 10;
if ($coli4 < 1)
$coli4 = 3;
switch (strtolower($type)){
case "world": default:
$file = "http://www.profootball.com.ua/rss/news.xml";
$HEADER .= " :: Новости мирового футбола";
break;
case "russian":
$file = "http://www.championat.ru/xml/rss_football_russiapl.xml";
$HEADER .= " :: Новости Российского футбола";
break;
case "ukraine": default:
$file = "http://news.yandex.ru/football.rss";
$HEADER .= " :: Новости футбола от yandex";
break;
case "menu":
$HEADER .= "";
break;
}
$HTML_NEWS['text'] .= <<< EOS
<div class="subtitle">
<b>Новости</b><br/>
</div>
<div class="text">
На этой странице находятся самые свежие футбольные новости. <br/>
</div>
<div class="text">
EOS;
if ($type=="menu")
{
$HTML_NEWS['text'] .= "<div class=\"subtitle\">Выберите категорию новостей</div><div class=\"text\">
<a href=?type=world&num=3>Новости мирового футбола</a><br>
<a href=?type=ya&num=3>Новости футбола от yandex</a><br>
<a href=?type=russian&num=3>Новости Российского футбола</a>";
}
else
{
$rss_channel = array();
$currently_writing = "";
$main = "";
$item_counter = 0;
function startElement($parser, $name, $attrs) {
global $rss_channel, $currently_writing, $main;
switch($name) {
case "RSS":
case "RDF:RDF":
case "ITEMS":
$currently_writing = "";
break;
case "CHANNEL":
$main = "CHANNEL";
break;
case "IMAGE":
$main = "IMAGE";
$rss_channel["IMAGE"] = array();
break;
case "ITEM":
$main = "ITEMS";
break;
default:
$currently_writing = $name;
break;
}
}
function endElement($parser, $name) {
global $rss_channel, $currently_writing, $item_counter;
$currently_writing = "";
if ($name == "ITEM") {
$item_counter++;
}
}
function characterData($parser, $data) {
global $rss_channel, $currently_writing, $main, $item_counter;
if ($currently_writing != "") {
switch($main) {
case "CHANNEL":
if (isset($rss_channel[$currently_writing])) {
$rss_channel[$currently_writing] .= $data;
} else {
$rss_channel[$currently_writing] = $data;
}
break;
case "IMAGE":
if (isset($rss_channel[$main][$currently_writing])) {
$rss_channel[$main][$currently_writing] .= $data;
} else {
$rss_channel[$main][$currently_writing] = $data;
}
break;
case "ITEMS":
if (isset($rss_channel[$main][$item_counter][$currently_writing])) {
$rss_channel[$main][$item_counter][$currently_writing] .= $data;
} else {
//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
$rss_channel[$main][$item_counter][$currently_writing] = $data;
}
break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
die("could not open XML input");
}
while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser, $data, feof($fp))) {
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
}
}
xml_parser_free($xml_parser);
if (isset($rss_channel["ITEMS"])) {
if (count($rss_channel["ITEMS"]) > 0) {
for($i = 0;$i < $coli4;$i++) {
$HTML_NEWS['text'] .= "\n<div class=\"subtitle\">" . $rss_channel["ITEMS"][$i]["TITLE"] . "</b></div>";
$HTML_NEWS['text'] .= "<div class=\"text\">" . html_entity_decode($rss_channel["ITEMS"][$i]["DESCRIPTION"]) . "</div>";
}
} else {
$HTML_NEWS['text'] .= "<b>There are no articles in this feed.</b>";
}
}
$HTML_NEWS['text'] .= <<< EOS
<div class=\"subtitle\">
<form method=get action=news.php>
EOS;
$HTML_NEWS['text'] .= "<a href=?type=$type&num=10>Больше новостей >>></a></form>";
}
бла бла бла...
|
|
|

01.03.2008, 19:06
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
2-Hormold-
http://forum.antichat.ru/showthread.php?t=43279
|
|
|

01.03.2008, 20:08
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
nlanger, XML а не PHP, PERL, MySQL, JavaScript, это не сюда
|
|
|

01.03.2008, 20:21
|
|
Постоянный
Регистрация: 29.09.2007
Сообщений: 617
Провел на форуме: 3250478
Репутация:
999
|
|
$_SERVER['HTTP_headername'] - не работает.....
|
|
|

01.03.2008, 20:28
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,205
Провел на форуме: 4778940
Репутация:
1257
|
|
PHP код:
<?php
print_r($_SERVER);
?>
среди прочего показывает и заголовки.
|
|
|

01.03.2008, 20:50
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
Провел на форуме: 6828219
Репутация:
2274
|
|
мб так?
PHP код:
<?php
$request = '';
foreach($_SERVER as $k=>$v) {
if(strpos(strtolower($k),'http') === false) break;
$request .= "$k = $v<br>";
}
echo $request;
?>
Выведет только то, что передал браузер пользователя 
Последний раз редактировалось Ponchik; 01.03.2008 в 21:02..
|
|
|

01.03.2008, 22:54
|
|
Познающий
Регистрация: 22.08.2006
Сообщений: 39
Провел на форуме: 69953
Репутация:
11
|
|
Как программно вывести параметр из php.ini upload_max_filesize,
нужно чтобы сработало наподобие: get_magic_quotes_gpc();
|
|
|

01.03.2008, 23:01
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
PHP код:
<?php
echo ini_get( 'upload_max_filesize' );
?>
|
|
|

02.03.2008, 00:18
|
|
Познающий
Регистрация: 06.08.2007
Сообщений: 84
Провел на форуме: 373338
Репутация:
25
|
|
такой вопросик : у меня есть 9 симвлов (0,1,2,3,4,5,a,b,c). и нада зделать список 4 буковных "слов" из етих 9 симолов, чтобы были абсолютно все комбинации...
Последний раз редактировалось symbioin; 02.03.2008 в 00:21..
|
|
|

02.03.2008, 00:21
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
можно через 8 вложенных циклов... есть другие варианты?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|