Avatar billede nyhuus Nybegynder
15. januar 2010 - 10:42 Der er 11 kommentarer og
1 løsning

Æ Ø Å igen igen, under søgning i data fra en XML fil

Hejsa alle Ekspertere..
Jeg har lidt problemer med Æ Ø Å..
Jeg har sat charset som UTF-8 via en header, min XML fil er også UTF-8

men vil jeg udskrive et æ direkte kommer der bare et spørgsmåls tegn, putter jeg htmlentities på virker det fint.

Denne methode kan jeg bare ikke helt bruge, da jeg har en en fil med adresser i der starter med æ ø og å, fx århusvej.

Jeg henter filen ind ved at tage 1 bogstav ud af strengen via substr. Her har jeg fiexet det ved at erstatte å med -AA osv, og så rettet filnavnet til det.

Det vil jeg meget nødig gøre med alle mine vejnavne, derfor søger jeg lidt hjælp til hvordan jeg kan lave søgningen i min xml fil når jeg har hentet den ind.

Jeg henter data fra xml files med file_get_contents, søgningen forgår via en stristr inden i en for();


jeg håber det er godt nok beskrvet, eller må i lige sige til, så må jeg prøve en gang mere :)


På forhånd mange tak!
Avatar billede stigma Nybegynder
15. januar 2010 - 10:47 #1
Er du sikker på at du også har har GEMT din fil som UTF-8, og ikke kun skrevet det i din header? Har nemlig lige selv sat og rodet med samme problem, hvor jeg fandt ud af at dokumentet også skulle gemmes som utf-8 encodeing :)
Avatar billede majbom Novice
15. januar 2010 - 10:47 #2
er dine filer også encoded som UTF8?
Avatar billede nyhuus Nybegynder
15. januar 2010 - 10:52 #3
nej det er jeg ikke sikker på.
er det XML filen eller php dokumentet?
Avatar billede nyhuus Nybegynder
15. januar 2010 - 11:08 #4
nu har jeg gemt filerne i UTF-8 min php fil var ikke den var iso-885-15, det hjalp på at jeg kunne udskrive direkte, men jeg kan stadig ikke søge i den streng som er hentet ind fra min xml fil
Avatar billede stigma Nybegynder
15. januar 2010 - 11:13 #5
Ja der må jeg så stå af desværre :) Har ikke lige rodet så meget med at søge i filer og sådan :)
Avatar billede majbom Novice
15. januar 2010 - 11:16 #6
hvordan gør du, og hvorfor kan du ikke - hvad er fejlen?
Avatar billede nyhuus Nybegynder
15. januar 2010 - 11:17 #7
hehe fair nok ;)

jeg tror såmen heller ikke det har så meget med søgning i selve filerne at gøre, da det blivet hentet ind i et array, det er først her fejlen opstår.

Det underlige er, at laver jeg en print_r eller en var_dump direkte fra datafilen, er der ingen problemer med at udskrive æ ø og å.


Det ser ud til at virker, det er bare søgningen der ikke helt vil virke
Avatar billede stigma Nybegynder
15. januar 2010 - 11:21 #8
Okay, ja det lyder underligt..
Avatar billede majbom Novice
15. januar 2010 - 11:25 #9
se #6...
Avatar billede nyhuus Nybegynder
15. januar 2010 - 11:30 #10
$dataFile = "http://intranet.verdo.dk/wp-content/plugins/netadmin/data/".$L.".xml";
  //var_dump(file_get_contents($dataFile));
echo $dataFile;

  if(!file_exists($dataFile)) {

    $data = file_get_contents($dataFile);

  }

 

  else {

    die ("Der er ingen resultater der begynder med ". $L . "<br />" . $dataFile);

  }

}

 

try {

  $xml = new SimpleXMLElement($data);

}



catch(Exception $e) {

  $fail = true;

}



if(isset($fail)) {

  // Gør noget her, hvis der er noget galt med XML'en

  echo "Der er sket en fejl!";

}

else

{

  // Gør noget her hvis XML'en er OK.

 

  // XML elementer tilgås via objekt selectoren

 

  $q = $_GET['q'];

  $x = count($xml->address);


  echo '<table><tr><td><strong>Adresse</strong></td><td><strong>Mulighed for fiber?</strong></td></tr>';

  for($i=0; $i < $x; $i++) {

    $theAddress = $xml->address[$i]->Street ." ". $xml->address[$i]->StreetNumber;

    if (stristr($theAddress, $q)) {

      if ($xml->address[$i]->Floor != chr(32)) { $theAddress .= " ". $xml->address[$i]->Floor; }

      if ($xml->address[$i]->Entrance != chr(32)) { $theAddress .= " ". $xml->address[$i]->Entrance; }

     

      echo '<tr style="border-bottom:1px solid black;">';

      echo '<td>'.$theAddress .", ". $xml->address[$i]->Zip . " ". $xml->address[$i]->Area.'</td>';

      echo '<td>'. translateStatus($xml->address[$i]->AdressCode5) . '</td></tr>';

    } echo $theAddress. "<br />";

  }

  echo "</table>";

}

Det jeg er kommet frem til er at det er i linien
<code>if (stristr($theAddress, $q)) {</code>
hvor det fejler.

Den kommer ikke med nogle fejl, og det fungere også rigtig fint, medmindre jeg bruger æ ø eller å
Avatar billede nyhuus Nybegynder
15. januar 2010 - 13:00 #11
Jeg har fundet ud af det.. det var virkelig nogle underlige ting i dette her.

stigma smider du et svar så kan du få point, da dete du sagde også var en mindre del af problemet :)
Avatar billede stigma Nybegynder
15. januar 2010 - 13:35 #12
Here u go
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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