Avatar billede slash_underscore Nybegynder
26. marts 2004 - 08:55 Der er 6 kommentarer og
1 løsning

Hvordan integreres php i XML ?

Jeg er nået frem til dette som virker, men de items der er skal erstattes af en while-løkke eller noget lignende...

<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<language>da</language>
<copyright>Copyright 2004, dallerweb.dk</copyright>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<url>http://newz.dk/gfx/newz-rss-logo.gif</url>
<title>newz.dk</title>
<link>http://newz.dk/</link>
</image>
<textInput>
<title>find</title>
<description>Her kan du se dit skema, hvis du ellers har indtastet det rigtige studieid</description>
<name>form_key</name>
<link>ihttp://newz.dk/news-search.php</link>
</textInput>

<item>
<title>1. time</title>
<link></link>
<description>ge</description>
</item>

<item>
<title>2. time</title>
<link></link>
<description></description>
</item>

<item>
<title>3. time</title>
<link></link>
<description></description>
</item>

<item>
<title>4. time</title>
<link></link>
<description></description>
</item>

<item>
<title>5. time</title>
<link></link>
<description></description>
</item>

<item>
<title>6. time</title>
<link></link>
<description></description>
</item>

<item>
<title>7. time</title>
<link></link>
<description></description>
</item>

<item>
<title>8. time</title>
<link></link>
<description></description>
</item>


</channel>
</rss>
Avatar billede olebole Juniormester
27. marts 2004 - 15:13 #1
<ole>

Så kan du erstatte alle elementerne med:

<?
while (0==0) {
  print "Dræb denne browser!<br>";
}
?>

Da jeg ikke går udfra, det er, hvad du ønsker dig, må du fortælle, hvad while-løkken skal lave - og hvorfra (og hvordan) evt. data kommer  :)

/mvh
</bole>
Avatar billede slash_underscore Nybegynder
29. marts 2004 - 08:00 #2
Har lavet det sådan, og det virker ikke:

<?xml version="1.0" encoding="iso-8859-1"?>
<?
echo"
<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:sy='http://purl.org/rss/1.0/modules/syndication/' xmlns:admin='http://webns.net/mvcb/' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:content='http://purl.org/rss/1.0/modules/content/'>
<channel>
<language>da</language>
<copyright>Copyright 2004, dallerweb.dk</copyright>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
<url>http://newz.dk/gfx/newz-rss-logo.gif</url>
<title>newz.dk</title>
<link>http://newz.dk/</link>
</image>
<textInput>
<title>find</title>
<description>Her kan du se dit skema, hvis du ellers har indtastet det rigtige studieid</description>
<name>form_key</name>
<link>ihttp://newz.dk/news-search.php</link>
</textInput>";

$antal=0;
while($antal<10){

echo"
<item>
<title>$antal time</title>
<link></link>
<description>Beskrivelse til $antal time</description>
</item>";
$antal++;
}

?>
</channel>
</rss>
Avatar billede olebole Juniormester
29. marts 2004 - 16:15 #3
Der er en bruger, der har skrevet en artikel om, hvordan man stiller spørgsmål på Eksperten. Den vil du uden tvivl have stort udbytte af at læse ... ikke kun i forbindelse med E, men i alle tilfælde, hvor du skal kommunikere med andre  ;o)
Det er af stor vigtighed, at man beskriver ens problem - og hvordan det udmønter sig.
Derfor er det meget vigtigt, man fortæller hvilke fejlmeddelelser, man får - og jeg formoder, det der har givet en parse-error.

Løsningen på problemet er at trække XML-deklarationen ind i din echo-kommando. Ellers fejltolker PHP dens '<?' og '?>':

<?
echo"
<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>
<rss version='2.0'
... osv ...

/mvh
Avatar billede slash_underscore Nybegynder
29. marts 2004 - 17:04 #4
Ja nu viser den outputtet i en lang linie, men nu vil Trillian ikke tage imod det længere... (det skal virke som et newsplugin...)
Avatar billede olebole Juniormester
29. marts 2004 - 18:02 #5
At du ikke får linieskift, handler om måden du bruger PHP på. Vil du have linieskift, må du skrive dem. Der er flere måder at gøre det på, men det kræver, du lægger dine kodevaner om.

For det første bør man - i stort set alle sprog - undlade at udskrive on-the-fly, men derimod fylde en streng-buffer og skrive den ud til sidst - det har stor betydning for performance i løkker:

  $s = "en tekst ";
  $s += "... og en til.";
  print $s;

Nå så du samler din buffer, skal du sætte dobbelte gåseøjne om dine 'stumper' - og escape evt. indre gåseøjne:
  $s += "<table border=\"0\"\n";
Ellers vil dine linieskift (\n) ikke virke.

En anden mulighed for at lave liniskift er at anvende 'here document' syntaks:

$myTxt = "En celle";
echo<<<MyEND
<table border="0">
<tr>
  <td>$myTxt</td>
</tr>
</table>
MyEND;

Det kræver dog temmelig stor påpasselighed med whitespace i begyndelsen og slutningen af kommandoen - ligesom du ikke kan bruge egentlige udtryk i echo'en ... kun variabler. Til gengæld bliver teksten skrevet ud, som den står.

Hvis Trillian ikke kan læse din XML uden linieskift, tyder det på, den ikke er helt kompatibel med XML  :)
/mvh
Avatar billede slash_underscore Nybegynder
29. marts 2004 - 22:15 #6
Oki, XML'en ser ud til at virke, så du skal vel have pointene ?

men du har ingen erfaring med implementering i Trillian ??
Avatar billede olebole Juniormester
29. marts 2004 - 23:44 #7
nope - desværre, der har jeg aldrig været  :o|
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester