Entfernen von geht nicht ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansehen
ausgabe
bedeutung
code
darstellen
datei
datum
dokumentation
editor
entfernen
glauben
header
lokalen tests
sonderzeichen
string
testen
url
verwenden
zeichen
zeile
-
Hallo
ich hole Daten aus XML und will diese leicht verändert ausgeben
die XML-Daten liegen als UTF-8 vor
im Script habe ich ganz oben auch drin
:header("Content-Type: text/html; charset=utf-8");
ich lese die Daten mit simplexml_load_file()
und gebe dann die Titel in einer foreach() aus
in den Daten ist das Element 'name' der String den ich haben will
da komme ich auch ran, aber im String sind auch
.. aber diese
bekomme ich nicht weg ?!?
$data = simplexml_load_file($myfile); foreach($data->result as $item) { $title = (string)$item->name; // -- z.B.: $title = ' Infotext Titel '; $title = str_replace(' ','',$title); echo "<br />".$title."\n"; // -- immernoch: $title = ' Infotext Titel '; }
also ich kann die nicht entfernen mit str_replace()
es bleibt Infotext Titel
???
auch wenn ich das (HTML) geschütze Leerzeichen mit utf8_encode() anwende
$raus = utf8_encode(' '); $title = str_replace($raus,'',$title);
auch dann bleibt es drin ... ist ja eigentlich aus Quatsch ... oder?
... oder wie sieht ein (HTML) geschützes Leerzeichen: sonst in UTF-8 aus ?
oder liegt es an simplexml_load_file() ?
Beitrag zuletzt geändert: 10.9.2012 12:31:46 von wguide -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
wguide schrieb:
Doch, das geht, hatte es mit Twitterdingens XML auch schon mal.
$title = str_replace(' ','',$title);
also ich kann die nicht entfernen mit str_replace()
es bleibt Infotext Titel
???
Das "&" ist ein Sonderzeichen, und muss dementsprechend mit dem Backslash als solches deklariert werden.
Habs grad nicht mehr genau im Kopf, glaube es ging so:
Aus
$title = str_replace(' ','',$title);
wird
$title = str_replace('\&'.'nbsp;', ' ', $title);
oder ähnlich.
Beitrag zuletzt geändert: 10.9.2012 14:33:51 von menschle -
menschle schrieb:
Seit wann denn das? Wenn es wirklich escaped werden müsste würde das doch sicher in der PHP-Dokumentation zu Strings stehen... tut es aber nicht
Das "&" ist ein Sonderzeichen, und muss dementsprechend mit dem Backslash als solches deklariert werden.
Welche Bedeutung sollte das
denn haben?&
Ohne der XML-Datei lässt sich das leider nicht nachvollziehen, denn in lokalen Tests konnte ich mit der str_replace-Zeile vom TE die
entfernen...
-
hackyourlife schrieb:
Da, zum testen ;)
Ohne der XML-Datei lässt sich das leider nicht nachvollziehen, denn in lokalen Tests konnte ich mit der str_replace-Zeile vom TE die
entfernen...
Wie gesagt, bin mir nicht mehr sicher, kann auch
$title = str_replace('&nbsp;', ' ', $title);
oder
$title = str_replace('\&nbsp;', ' ', $title);
gewesen sein.
-
also jetzt habe ich mir die XML Source nochmal angesehen
und dort steht an der Stelle, wo ich bei Ausgabe ein bekomme
dafür 2 Zeichen in UTF-8:
und0xC2
was in ISO-8859-1 so ausseiht0xA0
"Â "
.. ohne die Anführungszeichen ... (also dieses Sonderzeichen plus Leerzeichen)
<result> <id>25</id> <name>  Infotext Titel  </name> <info>... bla bla ...</info> </result>
aber die Ausgabe von
in der foreach()$title = (string)$item->name;
ergibt dann:
mit Infotext Titel
echo $title;
wenn ich jetzt dieses "Â " im str_replace verwende, dann verschwindet das bei der Ausgabe
$title = trim(str_replace('Â ','',$title));
echo $title; // ---- ergibt: "Infotext Titel" .... wie gewünscht ohne
aber schon komisch ... die Daten sind UTF-8, die Seite hat UTF-8 header
und trotzdem kann ich (muss ich) die ISO-Zeichen im str_replace verwenden ?
warum ist in der XML (als UTF-8) so komisch codiert ???
-
wguide schrieb:
Du müsstest wohl deinem Editor auch sagen, dass er die Seite in UTF-8 darstellen soll, dann würde er dort nur ein Zeichen darstellen...
aber schon komisch ... die Daten sind UTF-8, die Seite hat UTF-8 header
und trotzdem kann ich (muss ich) die ISO-Zeichen im str_replace verwenden ?
Interessanter ist aber, warum das bei
zuecho($title);
wird... aber nachdem das Problem ja gelöst ist sollte das auch nicht weiter stören.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage