Посмотрите, пожалуйста мой код:
function utf8_convert($str, $type)
{
static $conv = '';
if (!is_array($conv))
{
$conv = array();
for ($x=128; $x <= 143; $x++)
{
$conv['utf'][] = chr(209) . chr($x);
$conv['win'][] = chr($x + 112);
}
for ($x=144; $x<= 191; $x++)
{
$conv['utf'][] = chr(208) . chr($x);
$conv['win'][] = chr($x + 48);
}
$conv['utf'][] = chr(208) . chr(129);
$conv['win'][] = chr(168);
$conv['utf'][] = chr(209) . chr(145);
$conv['win'][] = chr(184);
}
if ($type == 'w')
{
return str_replace($conv['utf'], $conv['win'], $str);
}
elseif ($type == 'u')
{
return str_replace($conv['win'], $conv['utf'], $str);
}
else
{
return $str;
}
}
echo '<h1><font color="red">Проекты</font></h1>';
$url = 'db.xml'; //адрес XML
$xml = simplexml_load_file($url); //Интерпретирует XML-файл в объект
//цикл для обхода всей XML ленты
foreach ($xml->erlis->projekty as $item) {
echo '<a href="'.$item->nazov.'">';
echo '<h2>'.utf8_convert($item->uri,"w").'</h2>'; //выводим на печать заголовок статьи
echo '</a>';
echo utf8_convert($item->popis,"w"); //выводим на печать текст статьи
}
А вот XML документ
<erlis>
<projekty id="2">
<nazov>Diamant 73/182</nazov>
<uri>diamant-73_182</uri>
<top5>no</top5>
<rada_nazov>1</rada_nazov>
<kategoria_nazov>2</kategoria_nazov>
<popis><!-- Generated by XStandard version 2.0.0.0 on 2011-12-05T14:01:27 --><p>DIAMANT 73/182 je dům menšн velikosti se 4 obytnэmi mнstnostmi. Svэmi rozměry uspokojн nбroky 4-5 člennй rodiny. Rodinnэ dům je možnй čбstečně nebo ъplně podsklepit. Z bočnн strany domu je možno přistavět garбž, dvougarбž přнp. krytй stбnн. Rodinnэ dům je vhodnэ na rovinatэ, přнpadně mнrně svahovitэ terйn.</p></popis>
<pocet_miestnosti>4</pocet_miestnosti>
<pocet_osob>4</pocet_osob>
<obytna_plocha>73.00</obytna_plocha>
<uzitkova_plocha>126.00</uzitkova_plocha>
<zastavana_plocha>81.00</zastavana_plocha>
<obostavany_priestor>523</obostavany_priestor>
<vyska_strechy>7.89</vyska_strechy>
<orientacia_vstupu>Z, JZ, S, SZ</orientacia_vstupu>
<sklon_strechy>35</sklon_strechy>
<plocha_suteren>0.00</plocha_suteren>
<plocha_prizemie>66.70</plocha_prizemie>
<plocha_poschodie>59.20</plocha_poschodie>
<cena_projekt>26900</cena_projekt>
<cena_zaloha>8100</cena_zaloha>
<cena_nakluc>2550000</cena_nakluc>
<cena_suteren>2550000</cena_suteren>
<cena_materialu>1650000</cena_materialu>
<rocnik>2010</rocnik>
<novinka>no</novinka>
<fotogaleria>no</fotogaleria>
<vizualizacia>http://www.dumprojekt.cz/katalog/diamant-73_182/vizualizacia.jpg</vizualizacia>
<pohlad_01>http://www.dumprojekt.cz/katalog/diamant-73_182/pohlad-01.jpg</pohlad_01>
<pohlad_02>http://www.dumprojekt.cz/katalog/diamant-73_182/pohlad-02.jpg</pohlad_02>
<pohlad_03>http://www.dumprojekt.cz/katalog/diamant-73_182/pohlad-03.jpg</pohlad_03>
<pohlad_04>http://www.dumprojekt.cz/katalog/diamant-73_182/pohlad-04.jpg</pohlad_04>
<poschodie_n>http://www.dumprojekt.cz/katalog/diamant-73_182/poschodie_n.swf</poschodie_n>
<poschodie_p>http://www.dumprojekt.cz/katalog/diamant-73_182/poschodie_p.swf</poschodie_p>
<poschodie_z>http://www.dumprojekt.cz/katalog/diamant-73_182/poschodie_z.swf</poschodie_z>
<prizemie_n>http://www.dumprojekt.cz/katalog/diamant-73_182/prizemie_n.swf</prizemie_n>
<prizemie_p>http://www.dumprojekt.cz/katalog/diamant-73_182/prizemie_p.swf</prizemie_p>
<prizemie_z>http://www.dumprojekt.cz/katalog/diamant-73_182/prizemie_z.swf</prizemie_z>
<suteren_n>http://www.dumprojekt.cz/katalog/diamant-73_182/suteren_n.swf</suteren_n>
<suteren_p>http://www.dumprojekt.cz/katalog/diamant-73_182/suteren_p.swf</suteren_p>
<suteren_z>http://www.dumprojekt.cz/katalog/diamant-73_182/suteren_z.swf</suteren_z>
</projekty>
<projekty id="3">
<nazov>Diamant 77/59</nazov>
<uri>diamant-77_59</uri>
<top5>no</top5>
<rada_nazov>1</rada_nazov>
<kategoria_nazov>2</kategoria_nazov>
<popis><!-- Generated by XStandard version 2.0.0.0 on 2011-06-16T11:51:22 --><p>DIAMANT 77/59 je dům menšн velikostnн kategorie se 4 obytnэmi mнstnostmi. Svэmi rozměry uspokojн nбroky 4-5 člennй rodiny. Objekt je možnй realizovat se suterйnem. Z bočnн strany domu je možnй postavit garбž nebo dvojgarбž. Dům se dб umнstit do rovinatйho nebo mнrně svahovitйho terйnu.</p></popis>
<pocet_miestnosti>4</pocet_miestnosti>
<pocet_osob>4</pocet_osob>
<obytna_plocha>90.60</obytna_plocha>
<uzitkova_plocha>132.30</uzitkova_plocha>
<zastavana_plocha>86.00</zastavana_plocha>
<obostavany_priestor>550</obostavany_priestor>
<vyska_strechy>7.81</vyska_strechy>
<orientacia_vstupu>JZ, J, SZ, Z</orientacia_vstupu>
<sklon_strechy>45</sklon_strechy>
<plocha_suteren>0.00</plocha_suteren>
<plocha_prizemie>70.30</plocha_prizemie>
<plocha_poschodie>62.00</plocha_poschodie>
<cena_projekt>23800</cena_projekt>
<cena_zaloha>7140</cena_zaloha>
<cena_nakluc>2695000</cena_nakluc>
<cena_suteren>2695000</cena_suteren>
<cena_materialu>1752000</cena_materialu>
<rocnik>2003</rocnik>
<novinka>no</novinka>
<fotogaleria>yes</fotogaleria>
<vizualizacia>http://www.dumprojekt.cz/katalog/diamant-77_59/vizualizacia.jpg</vizualizacia>
<pohlad_01>http://www.dumprojekt.cz/katalog/diamant-77_59/pohlad-01.jpg</pohlad_01>
<pohlad_02>http://www.dumprojekt.cz/katalog/diamant-77_59/pohlad-02.jpg</pohlad_02>
<pohlad_03>http://www.dumprojekt.cz/katalog/diamant-77_59/pohlad-03.jpg</pohlad_03>
<pohlad_04>http://www.dumprojekt.cz/katalog/diamant-77_59/pohlad-04.jpg</pohlad_04>
<poschodie_n>http://www.dumprojekt.cz/katalog/diamant-77_59/poschodie_n.swf</poschodie_n>
<poschodie_p>http://www.dumprojekt.cz/katalog/diamant-77_59/poschodie_p.swf</poschodie_p>
<poschodie_z>http://www.dumprojekt.cz/katalog/diamant-77_59/poschodie_z.swf</poschodie_z>
<prizemie_n>http://www.dumprojekt.cz/katalog/diamant-77_59/prizemie_n.swf</prizemie_n>
<prizemie_p>http://www.dumprojekt.cz/katalog/diamant-77_59/prizemie_p.swf</prizemie_p>
<prizemie_z>http://www.dumprojekt.cz/katalog/diamant-77_59/prizemie_z.swf</prizemie_z>
<suteren_n>http://www.dumprojekt.cz/katalog/diamant-77_59/suteren_n.swf</suteren_n>
<suteren_p>http://www.dumprojekt.cz/katalog/diamant-77_59/suteren_p.swf</suteren_p>
<suteren_z>http://www.dumprojekt.cz/katalog/diamant-77_59/suteren_z.swf</suteren_z>
</projekty>
<projekty id="4">
<nazov>Diamant 78/96</nazov>
<uri>diamant-78_96</uri>
<top5>no</top5>
<rada_nazov>1</rada_nazov>
<kategoria_nazov>2</kategoria_nazov>
<popis><!-- Generated by XStandard version 2.0.0.0 on 2011-06-16T11:51:29 --><p>DIAMANT 78/96 je dům menšн velikosti s 5 obytnэmi mнstnostmi. Svэmi rozměry uspokojн nбroky 5-6 člennй rodiny. Rodinnэ dům je možnй čбstečně nebo ъplně podsklepit. Dům je vhodnэ do rovinatйho terйnu. Z bočnн strany domu je prostor na přнstavbu garбže, dvougarбže.</p></popis>
<pocet_miestnosti>5</pocet_miestnosti>
<pocet_osob>5</pocet_osob>
<obytna_plocha>77.40</obytna_plocha>
<uzitkova_plocha>128.90</uzitkova_plocha>
<zastavana_plocha>80.60</zastavana_plocha>
<obostavany_priestor>545</obostavany_priestor>
<vyska_strechy>8.16</vyska_strechy>
<orientacia_vstupu>SV, V, S</orientacia_vstupu>
<sklon_strechy>45</sklon_strechy>
<plocha_suteren>0.00</plocha_suteren>
<plocha_prizemie>65.80</plocha_prizemie>
<plocha_poschodie>63.10</plocha_poschodie>
<cena_projekt>24400</cena_projekt>
<cena_zaloha>7320</cena_zaloha>
<cena_nakluc>2671000</cena_nakluc>
<cena_suteren>2671000</cena_suteren>
<cena_materialu>1736000</cena_materialu>
<rocnik>2005</rocnik>
<novinka>no</novinka>
<fotogaleria>yes</fotogaleria>
<vizualizacia>http://www.dumprojekt.cz/katalog/diamant-78_96/vizualizacia.jpg</vizualizacia>
<pohlad_01>http://www.dumprojekt.cz/katalog/diamant-78_96/pohlad-01.jpg</pohlad_01>
<pohlad_02>http://www.dumprojekt.cz/katalog/diamant-78_96/pohlad-02.jpg</pohlad_02>
<pohlad_03>http://www.dumprojekt.cz/katalog/diamant-78_96/pohlad-03.jpg</pohlad_03>
<pohlad_04>http://www.dumprojekt.cz/katalog/diamant-78_96/pohlad-04.jpg</pohlad_04>
<poschodie_n>http://www.dumprojekt.cz/katalog/diamant-78_96/poschodie_n.swf</poschodie_n>
<poschodie_p>http://www.dumprojekt.cz/katalog/diamant-78_96/poschodie_p.swf</poschodie_p>
<poschodie_z>http://www.dumprojekt.cz/katalog/diamant-78_96/poschodie_z.swf</poschodie_z>
<prizemie_n>http://www.dumprojekt.cz/katalog/diamant-78_96/prizemie_n.swf</prizemie_n>
<prizemie_p>http://www.dumprojekt.cz/katalog/diamant-78_96/prizemie_p.swf</prizemie_p>
<prizemie_z>http://www.dumprojekt.cz/katalog/diamant-78_96/prizemie_z.swf</prizemie_z>
<suteren_n>http://www.dumprojekt.cz/katalog/diamant-78_96/suteren_n.swf</suteren_n>
<suteren_p>http://www.dumprojekt.cz/katalog/diamant-78_96/suteren_p.swf</suteren_p>
<suteren_z>http://www.dumprojekt.cz/katalog/diamant-78_96/suteren_z.swf</suteren_z>
</projekty>
<projekty id="5">
<nazov>Diamant 81/183</nazov>
<uri>diamant-81_183</uri>
<top5>no</top5>
<rada_nazov>1</rada_nazov>
<kategoria_nazov>2</kategoria_nazov>
<popis><!-- Generated by XStandard version 2.0.0.0 on 2011-03-25T12:56:17 --><p>DIAMANT 81/183 je dům menšн velikosti s 5 obytnэmi mнstnostmi. Svэmi rozměry uspokojн nбroky 4-6 člennй rodiny. Rodinnэ dům je možnй čбstečně nebo ъplně podsklepit. Z bočnн strany domu je možno přistavět garбž, dvougarбž přнp. krytй stбnн. Rodinnэ dům je vhodnэ na rovinatэ, přнpadně mнrně svahovitэ terйn.</p></popis>
<pocet_miestnosti>5</pocet_miestnosti>
<pocet_osob>5</pocet_osob>
<obytna_plocha>81.20</obytna_plocha>
<uzitkova_plocha>129.90</uzitkova_plocha>
<zastavana_plocha>80.00</zastavana_plocha>
<obostavany_priestor>546</obostavany_priestor>
<vyska_strechy>7.74</vyska_strechy>
<orientacia_vstupu>SV, S, SZ</orientacia_vstupu>
<sklon_strechy>45</sklon_strechy>
<plocha_suteren>0.00</plocha_suteren>
<plocha_prizemie>64.60</plocha_prizemie>
<plocha_poschodie>65.30</plocha_poschodie>
<cena_projekt>27200</cena_projekt>
<cena_zaloha>8200</cena_zaloha>
<cena_nakluc>2650000</cena_nakluc>
<cena_suteren>2650000</cena_suteren>
<cena_materialu>1720000</cena_materialu>
<rocnik>2010</rocnik>
<novinka>no</novinka>
<fotogaleria>no</fotogaleria>
<vizualizacia>http://www.dumprojekt.cz/katalog/diamant-81_183/vizualizacia.jpg</vizualizacia>
<pohlad_01>http://www.dumprojekt.cz/katalog/diamant-81_183/pohlad-01.jpg</pohlad_01>
<pohlad_02>http://www.dumprojekt.cz/katalog/diamant-81_183/pohlad-02.jpg</pohlad_02>
<pohlad_03>http://www.dumprojekt.cz/katalog/diamant-81_183/pohlad-03.jpg</pohlad_03>
<pohlad_04>http://www.dumprojekt.cz/katalog/diamant-81_183/pohlad-04.jpg</pohlad_04>
<poschodie_n>http://www.dumprojekt.cz/katalog/diamant-81_183/poschodie_n.swf</poschodie_n>
<poschodie_p>http://www.dumprojekt.cz/katalog/diamant-81_183/poschodie_p.swf</poschodie_p>
<poschodie_z>http://www.dumprojekt.cz/katalog/diamant-81_183/poschodie_z.swf</poschodie_z>
<prizemie_n>http://www.dumprojekt.cz/katalog/diamant-81_183/prizemie_n.swf</prizemie_n>
<prizemie_p>http://www.dumprojekt.cz/katalog/diamant-81_183/prizemie_p.swf</prizemie_p>
<prizemie_z>http://www.dumprojekt.cz/katalog/diamant-81_183/prizemie_z.swf</prizemie_z>
<suteren_n>http://www.dumprojekt.cz/katalog/diamant-81_183/suteren_n.swf</suteren_n>
<suteren_p>http://www.dumprojekt.cz/katalog/diamant-81_183/suteren_p.swf</suteren_p>
<suteren_z>http://www.dumprojekt.cz/katalog/diamant-81_183/suteren_z.swf</suteren_z>
</projekty>
<projekty id="6">
<nazov>Diamant 85/77</nazov>
<uri>diamant-85_77</uri>
<top5>no</top5>
<rada_nazov>1</rada_nazov>
<kategoria_nazov>2</kategoria_nazov>
<popis><!-- Generated by XStandard version 2.0.0.0 on 2011-06-16T11:51:36 --><p>DIAMANT 85/77 je dům střednн velikostnн kategorie se 4 obytnэmi mнstnostmi. Svэmi rozměry uspokojн nбroky 4-6 člennй rodiny. Svэm dispozičnнm řešenнm umožňuje čбstečtečnй nebo ъplnй podsklepenн. Z bočnн strany domu je možnй postavit garбž nebo dvojgarбž. Vstupnн čбst je možnй uzavřнt prosklenнm.</p></popis>
<pocet_miestnosti>4</pocet_miestnosti>
<pocet_osob>4</pocet_osob>
<obytna_plocha>80.40</obytna_plocha>
<uzitkova_plocha>139.10</uzitkova_plocha>
<zastavana_plocha>98.70</zastavana_plocha>
<obostavany_priestor>627</obostavany_priestor>
<vyska_strechy>7.16</vyska_strechy>
<orientacia_vstupu>SV, S, SZ, Z</orientacia_vstupu>
<sklon_strechy>45</sklon_strechy>
<plocha_suteren>0.00</plocha_suteren>
<plocha_prizemie>79.30</plocha_prizemie>
<plocha_poschodie>59.80</plocha_poschodie>
<cena_projekt>24700</cena_projekt>
<cena_zaloha>7410</cena_zaloha>
<cena_nakluc>3072000</cena_nakluc>
<cena_suteren>3072000</cena_suteren>
<cena_materialu>1997000</cena_materialu>
<rocnik>2004</rocnik>
<novinka>no</novinka>
<fotogaleria>yes</fotogaleria>
<vizualizacia>http://www.dumprojekt.cz/katalog/diamant-85_77/vizualizacia.jpg</vizualizacia>
<pohlad_01>http://www.dumprojekt.cz/katalog/diamant-85_77/pohlad-01.jpg</pohlad_01>
<pohlad_02>http://www.dumprojekt.cz/katalog/diamant-85_77/pohlad-02.jpg</pohlad_02>
<pohlad_03>http://www.dumprojekt.cz/katalog/diamant-85_77/pohlad-03.jpg</pohlad_03>
<pohlad_04>http://www.dumprojekt.cz/katalog/diamant-85_77/pohlad-04.jpg</pohlad_04>
<poschodie_n>http://www.dumprojekt.cz/katalog/diamant-85_77/poschodie_n.swf</poschodie_n>
<poschodie_p>http://www.dumprojekt.cz/katalog/diamant-85_77/poschodie_p.swf</poschodie_p>
<poschodie_z>http://www.dumprojekt.cz/katalog/diamant-85_77/poschodie_z.swf</poschodie_z>
<prizemie_n>http://www.dumprojekt.cz/katalog/diamant-85_77/prizemie_n.swf</prizemie_n>
<prizemie_p>http://www.dumprojekt.cz/katalog/diamant-85_77/prizemie_p.swf</prizemie_p>
<prizemie_z>http://www.dumprojekt.cz/katalog/diamant-85_77/prizemie_z.swf</prizemie_z>
<suteren_n>http://www.dumprojekt.cz/katalog/diamant-85_77/suteren_n.swf</suteren_n>
<suteren_p>http://www.dumprojekt.cz/katalog/diamant-85_77/suteren_p.swf</suteren_p>
<suteren_z>http://www.dumprojekt.cz/katalog/diamant-85_77/suteren_z.swf</suteren_z>
</projekty>
</erlis>
Спустя 14 минут, 42 секунды (31.01.2012 - 17:36) Winston написал(а):
И в чем проблема?
Спустя 10 минут, 49 секунд (31.01.2012 - 17:46) igor1306 написал(а):
Выводит вот такую ошибку Warning: Invalid argument supplied for foreach()
Спустя 12 минут, 13 секунд (31.01.2012 - 17:59) Winston написал(а):
$xml = simplexml_load_file($str);
foreach ($xml->projekty as $item)
{
echo '<a href="'.$item->nazov.'">';
echo '<h2>'.utf8_convert($item->uri,"w").'</h2>'; //выводим на печать заголовок статьи
echo '</a>';
echo utf8_convert($item->popis,"w"); //выводим на печать текст статьи
}
Спустя 1 час, 21 минута, 39 секунд (31.01.2012 - 19:20) igor1306 написал(а):
А сейчас, такие ошибки
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity ""
Warning: Invalid argument supplied for foreach()
Спустя 13 минут, 37 секунд (31.01.2012 - 19:34) Winston написал(а):
У тебя в xml файле в начале есть заголовок?
<?xml version="1.0" encoding="здесь укажи кодировку"?>
Спустя 26 минут, 20 секунд (31.01.2012 - 20:00) igor1306 написал(а):
Да есть, вот такая строка:
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
Спустя 17 часов, 47 минут, 19 секунд (1.02.2012 - 13:48) Winston написал(а):
Перепиши может так если файл лежит в одной директории со скриптом
Или пропиши полный путь вместе с протоколом
Или какой там у тебя адрес
$url = './db.xml'; //адрес XML
Или пропиши полный путь вместе с протоколом
$url = 'http://localhost/db.xml'; //адрес XML
Или какой там у тебя адрес
Спустя 17 минут, 35 секунд (1.02.2012 - 14:05) killer8080 написал(а):
А зачем нужен этот велосипед?
iconv чем не угодила?
Свернутый текст
Цитата (igor1306 @ 31.01.2012 - 16:21) |
function utf8_convert($str, $type) { static $conv = ''; if (!is_array($conv)) { $conv = array(); for ($x=128; $x <= 143; $x++) { $conv['utf'][] = chr(209) . chr($x); $conv['win'][] = chr($x + 112); } for ($x=144; $x<= 191; $x++) { $conv['utf'][] = chr(208) . chr($x); $conv['win'][] = chr($x + 48); } $conv['utf'][] = chr(208) . chr(129); $conv['win'][] = chr(168); $conv['utf'][] = chr(209) . chr(145); $conv['win'][] = chr(184); } if ($type == 'w') { return str_replace($conv['utf'], $conv['win'], $str); } elseif ($type == 'u') { return str_replace($conv['win'], $conv['utf'], $str); } else { return $str; } } |
iconv чем не угодила?
Спустя 16 минут, 17 секунд (1.02.2012 - 14:21) neadekvat написал(а):
Цитата (Winston @ 1.02.2012 - 14:48) |
Или пропиши полный путь вместе с протоколом |
Мне кажется, что я это уже говорил, и причем именно тебе. Если файл на своем сервере - не надо http использовать. Подключай от корня и все. Для этого тебе $_SERVER['DOCUMENT_ROOT'] дан.
Спустя 5 часов, 7 минут, 2 секунды (1.02.2012 - 19:29) Winston написал(а):
Цитата (neadekvat @ 1.02.2012 - 13:21) |
и причем именно тебе |
Не мне - это 100%