PHP foreach utf-8 encoding Probleme?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Versuch' mal

header('Content-Type: text/html; charset=UTF-8');

bzw.

header('Content-Type: text/html; charset: iso-8859-1');

und

foreach ($headline[0] as $key => $value) {

    echo utf8_encode($value) . "<br />";

}

Wie bereits erwähnt hängt die Codierung der Zeichen von der Quellseite ab, dein Code müsste dementsprechend die Strings konvertieren.


Allerdings frage ich mich, weshalb du nicht die Standard-Lösung über RSS verwendest:


$url = 'http://www.spiegel.de/index.rss';
$contents = file_get_contents($url);
$xml = simplexml_load_string($contents);
$object = json_decode(json_encode($xml));

das ist wesentlich einfacher (und schneller) als das scrapen der HTML-Seite.


Zudem bieten vermutlich ALLE Nachrichten Seiten einen Feed an.



"Alle ü, ö, ä, ß (UTF-8 halt)": ü, ö, ... ist kein UTF-8, sondern umlaute. für diese gibt es keine einheitliche darstellung im speicher. sondern verschiedene:

UTF-8 eben. aber auch iso-8859-1, auch auch latin-1 genannt; es gibt noch andere.

die spiegel.de seite benutzt nun aber iso-8859-1, wenn du jetzt dein hml den spiegel-inhalt als utf-8 ausgibst, hast du genau diesen effekt: die iso-darstellung ist ein ungüliges zeichen für UTF-8 und der browser stellt es durch ein ersatzzeichen dar.  

 

Java Umlaute Problem?

Hallo,

ich versuche Umlaute in eine Datei zu schreiben:

    FileWriter fww= new FileWriter("C://KBs//test2.xml");
    BufferedWriter bww=new BufferedWriter(fww);
    bww.write("Datenübertragung");
    bww.close();
    
    FileWriter fw= new FileWriter("C://KBs//test3.xml");
    BufferedWriter bw=new BufferedWriter(fw);
    bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");
    bw.write(umlauteUmformen(umlauteErsetzen("Datenübertragung")));
    bw.close();
   }

Beim oberen geht es, beim unteren, wegen dem UTF-8 encoding nicht. Ich versuch das seit 2 Tagen irgendwie in den Griff zu bekommen, jedoch ohne Erfolg.

Ich habe bereits folgende Methoden geschrieben und es damit versucht, auch erfolglos: 

public String umlauteErsetzen(String s) {

 s=s.replaceAll("ö", "\u00f6").replaceAll("Ö", "\u00d6") .replaceAll("ä", "\u00e4").replaceAll("Ä", "\u00c4").replaceAll("ü", "\u00fc") .replaceAll("Ü", "\u00dc").replaceAll("ß", "\u00df");

 return s; 

}

Und: 

public String umlauteUmformen(String s) { 

byte ptext[] = s.getBytes(ISO_8859_1); 

String value = new String(ptext, UTF_8); 

return value;

}

Die XMLs sind vorgegeben, das UTF-8 encoding im XML kann nicht geändert werden. Ich bitte um Hilfe -_- LG

...zur Frage

php: Variable über 2 seiten nehmen?

hallo, ich habe eine artikel.php seite wo mehrere artikel stehen, dabei immer eine form:

<form action="Kontakt.php" method="POST">
	<input name="artikelname" type="hidden" value="artikel69">
	<button type="submit" class="btn btn-lg btn-block btn-outline-primary">Ich habe interesse</button>
</form>

in der Kontakt.php ist dann auch eine form, ein Kontaktformular, und unter anderem das hier:

<div class="form-group">
	<label>artikelname:</label>
	<input type="text" name="artikelname" value="<?php echo $_POST['artikelname'];?>">
</div>

da steht dann der artikel der angefordert wurde, jetzt sollen die daten dann noch an die send.php gehen, doch wie schaffe ich es ohne season wieder die variable "artikelname" dahin zu senden ? denn wenn ich eine season nutze und der nutzer die seite verlässt und irgendwann normal das kontaktformular öffnet ist ja der artikel immer noch da, der soll nur bei dieser Sitzung da sein... versteht ihr ? wie mache ich das genau ?

...zur Frage

Variable von JavaScript zu PHP?

Hallo. Ich habe folgenen Code:

<div id="content-txt">
<form id="" onsubmit="alert('Der Text wurde in der Datenbank gespeichert.'); return false;">
<fieldset>
<textarea id="txtContent" name="txtContent" class="widgEditor nothing">
<?php $abfrage = "SELECT text FROM seiten WHERE seitenname='$p'";
$ergebnis = mysqli_query($db, $abfrage);

while ($row = $ergebnis->fetch_assoc()) {
echo $row['text'];
} ?> </textarea>
</fieldset>
<fieldset class="submit">
<input type="submit" id="subButton" value="Text in Datenbank speichern!" />
</fieldset>
</form>
</div>

<script language="javascript" type="text/javascript">
function getHTMLCode() {
var txtContent = document.getElementById('txtContent').value;
var result = document.getElementById('result');

result.textContent = '<br/>' + txtContent;

}
var subButton = document.getElementById('subButton');
subButton.addEventListener('click', getHTMLCode, false);
</script>

<p id='result'></p></div>

Mit der ID result kann ich nun den Code auf die Seite schreiben:

Nun will ich aber den Inhalt, der bei der id=result rauskommt in eine Variable schreiben bzw irgendwie in einer Funktion verwenden. Ist das irgendwie möglich?

...zur Frage

PHP Website Start Problem?

Ich habe ein eine Upload HTML geschrieben(ganz Simple):

<form method="POST" enctype="multipart/form-data" action="up.php">
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>

Die öffnet ganz normal solange der name index.html besteht, dann hab ich noch eine up.php die, die Datei speichern soll die Upgeloadet wird und wenn die über action="up.php" gestartet wird kommt nur ein Text in vorschein :( Und das Event was ausgeführt werden soll wird nicht ausgeführt! Das ist bei mir bei allen .php Datein, da wird entweder keine Grafische oberfläche angezeigt oder kein Event ausgeführt.

Hier die up.php:

<?php
$file = %FILES["file"];
move_uploaded_file($file["tmp_name"], "uploads/".$file["name"]);
header("Location: index.html");
?>

Ich starte die Dateien immer mit Google Chrome, was mache ich falsch??

bitte um antwort

LG.

...zur Frage

php: Umlaute werden falsch ausgegeben?

hallo habe so ein script :

$aaa="geegäef";
$seite=strtolower(utf8_encode($aaa));
$seite=str_replace(' ', '-', $seite);
$seite=str_replace(',', '', $seite);
$seite=str_replace('/', '', $seite);
$seite=str_replace('"', '', $seite);
$seite="".$row->id."-".$seite."";
echo utf8_encode($seite); exit;

die ausgabe ist da jetzt aber

geegäef

wieso wird trotz utf8_encode das ä nicht angezeigt ??

...zur Frage

Wo ist der Fehler in meinem PHP post code?

Hey, ich habe heute angefangen mit php rum zuspielen und finde meinen Fehler einfach nicht, ich hoffe mir kann jemand weiter helfen :)


<?php

$notiz = "";

if($_POST['name'] != "" && $_POST['nickname'] != "" && $_POST['gbdatum'] != "") {          mail("info@domain.de", "Spieler-Buch Eintrag von: " . $_POST['nickname'], $_POST['nickname'] . " hat das Formular zum Eintrag in das Spieler-Buch ausgefüllt. \n\n Daten:\nName: " . $_POST['vorname'] . " " . $_POST['name'] . "\nSpielername: " . $_POST['nick'] . "\nGeboren am: " . $_POST['gbdatum']);       } else if($_POST['formular'] == 'set') {     $notiz = "Fülle bitte alle Felder aus."; } ?>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <meta name="language" content="de" />
        
        <style>
        
        </style>
    </head>
    <body>
        
        <h2>Spielerbuch-Formular</h2>
        
        <form action="formular.php" method="post">
            <input type="hidden" value="set" name="formular">
			<input type="hidden" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" name="ip">
            
            <input type="text" placeholder="Vorname" value="<?php echo $_POST['vorname']; ?>" name="vorname"><br>
            <input type="text" placeholder="Nachname" value="<?php echo $_POST['name']; ?>" name="name"><br>
            <input type="text" placeholder="Spielername" value="<?php echo $_POST['nick']; ?>" name="nick"><br>
            <input type="date" value="<?php echo $_POST['gbdatum']; ?>" name="gbdatum"><br><br>
            
            <input type="submit" value="send">
            <br><br>
            <h4><font color="red"><?php echo $notiz; ?></font></h4>
       </form>
        
    </body>
</html>

Wenn ich im Formular alle vier Sachen ausfülle, dann wird mir die $notiz angezeigt und die Mail geht nicht raus.

<?php

mail("info@kryziz-gaming.de", "Betreff", "Testnachricht")

?>

Das funktioniert, ist aber auch stumpf.

...zur Frage

Was möchtest Du wissen?