» »

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
<?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:
<?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?

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:
$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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Davčne blagajne (strani: 1 2 3 424 25 26 27 )

Oddelek: Programiranje
1344333582 (73585) Macketina
»

PHP davčna blagajna

Oddelek: Programiranje
188125 (6149) brble
»

Uporaba spremenjivke iz JavaScript v PHP

Oddelek: Programiranje
171437 (1076) direstrait
»

PHP - Prenos priponk iz RSS vira

Oddelek: Programiranje
5603 (526) keworkian
»

PHP XML->attributes

Oddelek: Programiranje
51406 (1342) keworkian

Več podobnih tem