Forum » Programiranje » PHP simplexml_load_file težava
PHP simplexml_load_file težava
a-ptuj1 ::
Pozdravljeni,
Presesel bi rad string iz ene PHP strani na PHP drugo, pa ne gre. Težava je najverjetneja v povezavi med simplexml_load_file in SimpleXMLElement. Kako to združiti da bo delovalo in na drugi izpisalo podatka Ana in Toni. Že naprej hvala za pomoč, kako napisati skript da bo to delovalo.
prva.php
druga.php
Presesel bi rad string iz ene PHP strani na PHP drugo, pa ne gre. Težava je najverjetneja v povezavi med simplexml_load_file in SimpleXMLElement. Kako to združiti da bo delovalo in na drugi izpisalo podatka Ana in Toni. Že naprej hvala za pomoč, kako napisati skript da bo to delovalo.
prva.php
<?php $string = <<<XML <a> <b> <c>Ana</c> <c>Toni</c> </b> </a> XML; ?>
druga.php
<?php $xml = simplexml_load_file('prva.php'); $podatek = new SimpleXMLElement($string); $result1 = $podatek->xpath('b/c'); while(list( , $node) = each($result1)) { echo '<br/>',$node,"\n"; } ?>
Matjaž Lojen ::
Za vsak slučaj preveri, če imaš v php.ini allow_url_fopen On in morda še allow_url_include na On. Pri meni je bila tu težava.
Pero je močnejše od meča.
Matjaž Lojen ::
Probaj najprej s tem:
<?php // The file test.xml contains an XML document with a root element // and at least an element /[root]/title. if (file_exists('prva.php')) { $xml = simplexml_load_file('prva.php'); print_r($xml); } else { exit('Failed to open prva.php'); } ?>
Pero je močnejše od meča.
radiokills ::
Zdej bom pa jest (stari prdec) malo jeze stresel :).
1. Kako se to oblikuje XML dokumen, a?! :). Kje je xml deklaracija? Je ni. Mogoče ti bo tale stvar s php-jem delala, kaj pa če se pojavi zunaji odjemalec, ki bi te reči bral s kakšno Javo, a? Niso zastonj standardi spisani, ti toplo priporočam da se jih držiš :)
2. Takole oblikovanje XML dokumenta te bo slej ko prej pripeljalo v težave. Uporabi funkcionalnosti tegale simple_xml class. Takole nekako:
Tole bo rešilo tudi problem z deklaracijo. Mogoče bo od začetka malo problematično, je pa vzdrževanje take kode veliko lažje kot vzdrževanje nekih zlepljenih stringov.
Pa brez zamere ;)
1. Kako se to oblikuje XML dokumen, a?! :). Kje je xml deklaracija? Je ni. Mogoče ti bo tale stvar s php-jem delala, kaj pa če se pojavi zunaji odjemalec, ki bi te reči bral s kakšno Javo, a? Niso zastonj standardi spisani, ti toplo priporočam da se jih držiš :)
2. Takole oblikovanje XML dokumenta te bo slej ko prej pripeljalo v težave. Uporabi funkcionalnosti tegale simple_xml class. Takole nekako:
<?php $aXML = new SimpleXMLElement("<a></a>"); $bContainer = $aXML->addChild('b'); $people=array("Ana", "Toni"); foreach($people as $person){ $bContainer->addChild('c', $person); } Header('Content-type: text/xml'); echo $aXML->asXML(); ?>
Tole bo rešilo tudi problem z deklaracijo. Mogoče bo od začetka malo problematično, je pa vzdrževanje take kode veliko lažje kot vzdrževanje nekih zlepljenih stringov.
Pa brez zamere ;)
a-ptuj1 ::
Radiokills najleša hvala za vaše opozorilo in kodo. Ta vaša dela OK.
Vendar je moja glavna težava v tem, da imam string podatke na eni strani (prva.php - Ana, Toni, $a=1) in jih želim prenesti ter izpisati na drugi strani (druga.php). Na tej drugi strani ne pride v poštev funkcija, include (prva.php) ali require (prva.php), ker bi prenesla vse podatke, jaz pa rabim na primer samo ta dva in spremeljivko $a. zato sem poskušal s XML, pa sedaj vidim, da to nebo vredu.
A obstaja kakšna možnost, dac se prenesajo samo določeni podatki iz ene na drugo stran. Kakšno funkcijo je potrebo uporabiti za to, na eni in kaj na drugi strani?
Vendar je moja glavna težava v tem, da imam string podatke na eni strani (prva.php - Ana, Toni, $a=1) in jih želim prenesti ter izpisati na drugi strani (druga.php). Na tej drugi strani ne pride v poštev funkcija, include (prva.php) ali require (prva.php), ker bi prenesla vse podatke, jaz pa rabim na primer samo ta dva in spremeljivko $a. zato sem poskušal s XML, pa sedaj vidim, da to nebo vredu.
A obstaja kakšna možnost, dac se prenesajo samo določeni podatki iz ene na drugo stran. Kakšno funkcijo je potrebo uporabiti za to, na eni in kaj na drugi strani?
radiokills ::
Torej, če prav razumem sta ti dve skripti na različnih strežnikiz oziroma vsaj na različnih sajtih? V kakšni obliki pa maš podatke, kje so spravljeni?
radiokills ::
Aha! Zdajle sem ga zagledal. Problem je tukale:
Tukaj ti prebereš source fajla prva.php. Skripta se torej ne izvede. Pomoje ti bo tole najlaže narediti z include. Če nočeš 'onesnaževati' namespace-a, si jih spravi v nek array. Npr.:
Seveda si boš na tak način moral naložiti vse podatke. Vendar ti to performance-vise ne povzroča novih problemov, saj bi te podatke moral v vsakem primeru naložit, v prva.php.
$xml = simplexml_load_file('prva.php');
Tukaj ti prebereš source fajla prva.php. Skripta se torej ne izvede. Pomoje ti bo tole najlaže narediti z include. Če nočeš 'onesnaževati' namespace-a, si jih spravi v nek array. Npr.:
$podatki['a']=12; $podatki['people']=array("Janko","Metka"); ......
Seveda si boš na tak način moral naložiti vse podatke. Vendar ti to performance-vise ne povzroča novih problemov, saj bi te podatke moral v vsakem primeru naložit, v prva.php.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 333579 (73582) | Macketina |
» | PHP davčna blagajnaOddelek: Programiranje | 8125 (6149) | brble |
» | Uporaba spremenjivke iz JavaScript v PHPOddelek: Programiranje | 1437 (1076) | direstrait |
» | PHP - Prenos priponk iz RSS viraOddelek: Programiranje | 603 (526) | keworkian |
» | PHP XML->attributesOddelek: Programiranje | 1406 (1342) | keworkian |