<?php
// $f_no[40] is de uiteindelijk geexporteerde waarde die uit de database komt welke door een tekstveld in de webshop is ingevoerd
$f_no[40] = $this->sanitize($order_detail['value']);
?>
Dit gaat op zich goed en is de output aardig schoon
Echter....de klant wil graag ivm printen van deze tekst de <br />(zoals de function ook doet) eruit hebben maar wel de zichtbare enters in het betreffende .csv veld.
Nou zoals blijkt is een export naar een csv bestand aan andere voorwaarden verbonden als een export naar de printer.
twee mogelijkheden dus:
of je past de bestaande functie sanitize aan met een extra parameter waaruit blijkt waar de export naar toe gaat en zet dan een if() boven de regel "$string = preg_replace('/<br\\s*?\/??>/i','', $string);" zodat deze alleen uitgevoerd wordt wanneer er naar de csv geexporteerd wordt.
of je maakt een tweede functie sanatize_printer waarin je bovengenoemde regel weglaat. In dat geval zul je de code moeten gaan aanpassen daar waar de functie sanatize wordt aangeroepen
Alleen is het voor mij even belangrijk hoe ik inplaats van VOORBEELD:
|--------------------------------------------------------------------------------------------|
|tekst in veld van .csv<br /><br />volgende regel met tekst<br /> Volgende regel
|--------------------------------------------------------------------------------------------|
Dit krijg:
|--------------------------------------------------------------------------------------------|
|tekst in veld van .csv
|
|Volgende regel met tekst
|Volgende regel etc etc
|--------------------------------------------------------------------------------------------|
Wat de klant er dan zelf mee doet is hun ding...
Ik krijg het simpelweg niet voor elkaar om de newline te krijgen in het zelfde veld waar die data
met enters in is geexporteerd.
Met "$string = preg_replace('/<br\\s*?\/??>/i','', $string);"
krijg ik wel nieuwe regels maar staan die helemaal aan het begin van het .csv bestand
En daar zit 't hem in..het moet binnen het veld blijven van die geexporteerde data..
de database tabe is trouwens een VARCHAR....Zou ik dit kunnen oplossen door er een CHAR van te maken.....?
Of houdt ik dan alleen maar aaneen gesloten tekst over?
Regel 4: striptags haalt alle html tags weg uit de string.
Daarna ga je de breaks replacen, dat heeft weinig effect meer ;-)
Maar als ik het goed lees komt het in een db tabel te staan en moet het weer getoond worden via php, dus waarom zou je het er uitslopen, met strip_tags kan je ook uitzonderingen maken.
Je brengt me in verwarring, wat wil je nu precies?
Een voorbeeld:[code]?php
$html = '<script>alert ("You've been hijacked");</script>Hello hostage,<br>Welcome, we gonna make lots of money out of you :-P)';
// 1
echo strip_tags($html);
// 2
echo strip_tags($html, '<br>');
?>
Output 1:
alert ("You've been hijacked");Hello hostage,Welcome, we gonna make lots of money out of you :-P)
Output 2:
alert ("You've been hijacked");Hello hostage,
Welcome, we gonna make lots of money out of you :-P)
Mijn vraag gaat over een onderdeel van een database export to .csv script.
in dit script wordt de data van een bepaald database tabel geexporteerd en als comma seperated value weggeschreven.
Goed,
Waar het de klant om gaat is dat in een onderdeel van de geexporteerde data tekst staat
waarin <br /> voorkomen (komt ergens vanuit een tekstveld in de webshop vandaan), deze html is goed maar de klant kan deze niet verwerken o.i.d.
Dus heeft mij gevraagd om te kijken of het mogelijk is om de breaks te vervangen voor zichtbare enters zonder de html erbij.
Maar ik denk dat ik de vraag al heb beantwoordt, volgens mij lukt dat helemaal niet in een comma seperated value bestand.
Kijk, ik zal een image als voorbeeld geven:
Wat in het bovenste veld staat is zoals de klant et wil hebben.
Maar hij elf stuurt mij al een .xls inplaats van een .csv bestand.
Bedankt voor je reactie...
Ik heb het getest en ook dat werkt niet.
Het probleem is dat de geexporteerde data dan een regel eronder naar de eerste kolom wordt gezet.
En dat is waar ik tegenaan loop.
Het moet binnen hetzelfde kolom blijven in het betreffende veld.
Volgens mij krijg je dit sneller voor elkaar als de export een .xls bestand betreft.
Maarrrr....dat doet het script niet.