Hallo allemaal,

Ik krijg een xml bestand aangeleverd die ik verwerk en in een db zet. Nu is het probleem dat de encoding niet goed te krijgen is en het vervangen van de \n niet werkt. Ik heb ookal rondgezocht op dit forum, en geen van de opties werken.

Newline vervangen:

Dit is de code die ik gebruik:

$var = str_replace("\n", "<br />", $var);


Als ik dit toepas op tekst die ik uit de db haal, gebeurt er niks mee. Wat doe ik fout? Het werkt wel als ik dezelfde tekst zo probeer:


$var = "de opgehaalde\ntekst uit de db";
$var = str_replace("\n", "<br />", $var);


Maar op de tekst die uit de db gehaald wordt, werkt niks. :S

Encoding:

De db staat op latin1_swedish_ci het html bestand bevat:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">


Ook de tekst in het xml bestand is in ISO-8859-1 opgesteld.
Ondanks dit blijft hij toch de rare tekens weergeven. :S

Ik hoop dat iemand mij kan helpen met 1 of allebij de problemen.

Alvast bedankt voor jullie tijd en moeite.

Groeten,
Rico
<?php
$var = str_replace("\\n", "<br />", $var);
?>

Werkt dat niet? (Je escapet hiermee de \n.)
Djemo schreef op 04.04.2008 18:48
<?php
$var = str_replace("\\n", "<br />", $var);
?>

Werkt dat niet? (Je escapet hiermee de \n.)


AAAAA ik wist wel dat het iets doms zou zijn wat ik niet doorhad... echt dat ene \ werkt helemaal.. :D Heel erg bedankt, dan is iig 1 probleem opgelost. :D Bedankt Djemo. En ook de rest bedankt voor het meekijken wat ik nu eigenlijk niet had gedaan. :D

Nu nog het encoding probleem wat heel vreemd is, maar denk dat het ook zoiets kleins is.
@martijn: ok dan heb ik nu weer iets bijgeleerd. Ik heb nog nooit zo'n probleem gehad. Maar ik heb het getest, en met deze mogelijkheid is het ineens geen ISO-8859-1 (wat met xsl wel was) maar simpelweg utf-8.

Dit is wat ik toe heb gevoegd na eerst verbinding met de db te hebben gemaakt.

mysql_query ('SET NAMES utf8');

mysql_query ('SET CHARACTER SET utf8');


Het werkt helemaal perfect nu. :D Echt super bedankt allemaal. Heb het eindelijk goed staan na ruim een week.. :D

Reageren