Suche auf lima-city
-
in: regExp ... mit Anführungszeichen auslesen ?
geschrieben von wguide
nö,
das gibt Fehlermeldung so
preg_match_all('/<meta.*charset=([^;"|']*)("|')>/i', $html, $matches);
unexpected ] in line ...
... ach ja .. logisch, das ' muss dann auch escaped werden
habs jetzt mal so gemacht, ohne das ODER | Pipe Zeichen,
preg_match_all('/<meta.*charset=(.+?)[\'";].*>/i', $html, $matches);
und so es scheint es auch zu funktionieren
DANKE .. das escapen war der wichtige Hinweis ^^ :=)
-
in: regExp ... mit Anführungszeichen auslesen ?
geschrieben von wguide
Hallo
ich möchte aus einem HTML-Code auslesen, welcher charset verwendet wird
dazu habe ich einen regExp, der aber nur funktioniert, wenn Code mit " ist..
BSP:<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
preg_match_all('/<meta.*charset=([^;"]*)">/i', $html, $matches);
wie muss ich den RegEx-Pattern ändern,
damit er sowohl für " als auch für ' funktioniert, also so, dass es auch geht
wenn so:<meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
also egal, ob mit doppelten oder einfachen "Gänsefüßchen" (Anführungszeichen)
also egal ob Attribute mit
oder"
im Code stehen'
-
in: Entfernen von geht nicht ?
geschrieben von wguide
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 ???
-
in: PHP Variable in while-Schleife
geschrieben von wguide
gute Frage, was will der TE machen ... ?!?
a) ... einen User-Login ... Prüfen ob ID existiert und ob das Passwort richtig ist
oder
b) ... alle Daten ausgeben ... die einem User (Autor) zugeordnet sind (z.B. Artikel, Kommentare, ... )
zu a)
<?php $user_id = $_SESSION["BenutzerID"]; $user_pw = $_SESSION["Password"]; $user_id = mysql_real_escape_string($user_id); $user_pw = mysql_real_escape_string($user_pw); $abfrage = "SELECT * FROM usertable WHERE id = '$user_id ' LIMIT 1"; $ergebnis = mysql_query($abfrage); $num_rows = mysql_num_rows($ergebnis); if ($num_rows == 0) { echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n"; } else { $row = mysql_fetch_object($ergebnis)); // --- wegen LIMIT 1 ist hier keine while-Schleife notwendig if ($row->pass == $user_pw) { echo "<br />OK ... Login erfolgreich. "\n"; } else { echo "<br />Fehler ... Passwort ist nicht richtig. "\n"; } } ?>
zu b)
<?php $user_id = $_SESSION["BenutzerID"]; $user_id = mysql_real_escape_string($user_id); $abfrage = "SELECT * FROM tabellenname WHERE id = '$user_id '"; $ergebnis = mysql_query($abfrage); $num_rows = mysql_num_rows($ergebnis); if ($num_rows == 0) { echo "<br />Keine Daten zu User mit dieser ID gefunden. "\n"; } else { $row = mysql_fetch_object($ergebnis)) $n=1; while($row = mysql_fetch_object($ergebnis)) { echo "<p>--------- Ergebnis Nr: ".$n." ---------\n"; echo "<br />Von User-ID: " . $row->id . "\n"; echo "<br />Artikel-Typ: " . $row->post_type . "\n"; echo "<br />Artikel-Text: " . $row->text . "\n"; echo "<br />Erstellt am: " . $row->datum . "\n"; echo "</p>\n"; $n++; } } ?>
... oder wie oder was ?! -
in: Entfernen von geht nicht ?
geschrieben von wguide
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() ?