PDA

Bekijk Volledige Versie : php, ' en " worden \' en \"



bjorri
22/04/04, 09:35
Windows2000 server, iss 5, php 4.3.5

Ik ben nu enkele weken aan het stoeien met php, met wisselende
resultaten. Een deelproject is het maken van een forum/gastenboek. De
onderstaande vragen zullen ongetwijfeld niet ingewikkeld zijn maar ik
kom er zelf niet uit.

http://80.100.72.11/hombo/forum/forum.php

waar ik tegenaan loop is dat als er teksten worden geupload (via forms)
dat bij het weergeven apostophs ' en " veranderen in \' en \" met
string_replace kwam ik er niet verder mee. Heeft iemand hier een idee voor?

Tevens worden harde returns in de tekst natuurlijk genegeerd bij het
weergeven. Hoe kan ik een harde return laten omzetten in een <p> of <br>?

bjorri.

Paul Peters
22/04/04, 10:15
bjorri wrote:
> Windows2000 server, iss 5, php 4.3.5
>
> Ik ben nu enkele weken aan het stoeien met php, met wisselende
> resultaten. Een deelproject is het maken van een forum/gastenboek. De
> onderstaande vragen zullen ongetwijfeld niet ingewikkeld zijn maar ik
> kom er zelf niet uit.
>
> http://80.100.72.11/hombo/forum/forum.php
>
> waar ik tegenaan loop is dat als er teksten worden geupload (via forms)
> dat bij het weergeven apostophs ' en " veranderen in \' en \" met
> string_replace kwam ik er niet verder mee. Heeft iemand hier een idee voor?
>
> Tevens worden harde returns in de tekst natuurlijk genegeerd bij het
> weergeven. Hoe kan ik een harde return laten omzetten in een <p> of <br>?
>
> bjorri.


stoeit ook een beetje met php en voor die harde return zou het volgende
moeten werken:

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

het werkt hier tenminste wel.

P2

bjorri
22/04/04, 10:45
Stefan Koopmanschap (remove withoutspam to e-mail) wrote:

> bjorri wrote:
>
>> Windows2000 server, iss 5, php 4.3.5
>>
<<>>
>> waar ik tegenaan loop is dat als er teksten worden geupload (via
>> forms) dat bij het weergeven apostophs ' en " veranderen in \' en \"
>> met string_replace kwam ik er niet verder mee. Heeft iemand hier een
>> idee voor?
>>
>> Tevens worden harde returns in de tekst natuurlijk genegeerd bij het
>> weergeven. Hoe kan ik een harde return laten omzetten in een <p> of <br>?
>
>
> twee belangrijke functies die je heel veel zal gaan gebruiken bij het
> weergeven van data zijn stripslashes() en nl2br()
>

Dank, ik kan hier weer mee vooruit. PHP is erg facinerend, meestal kom
ik er met de manual wel uit maar soms weet je gewoon niet waar je naar
zoekt.

@2p in een windows omgeving werkt jou oplossing helaas niet maar toch
bedankt voor je antwoord en ook veel plezier met het 'stoeien'.

bjorri

Stefan Koopmanschap (remove withoutspam to e-mail)
22/04/04, 11:05
bjorri wrote:

> Dank, ik kan hier weer mee vooruit. PHP is erg facinerend, meestal kom
> ik er met de manual wel uit maar soms weet je gewoon niet waar je naar
> zoekt.

In de gevallen dat de manual niet voldoet is een reference book geen
overbodige luxe. Hoewel die dingen vaak toch wel wat kosten is het
directe voordeel toch wel dat je altijd wat kan checken wat toch wel erg
handig is :)

--
Stefan Koopmanschap
PHP/MySQL developer - websites, intranet and extranet systems and more...
http://www.stefankoopmanschap.com/
php@stefankoopmanschap.com

Eric B. Bednarz
22/04/04, 12:05
Paul Peters <paul@spamnatd.nl> writes:

> stoeit ook een beetje met php en voor die harde return zou het
> volgende moeten werken:
>
> $message = str_replace ("\n","<br>",$message);

Als je een oude PHP versie hebt bestaat er een handige functie voor:

$message = nl2br($message);

Voor HTML is deze echter al sinds enige tijd verziekt (sinds 4.05
volgens TFM). Cluelessness considered harmful.


--
| ) 111010111011 | http://bednarz.nl/
-(
| ) Distribute me: http://binaries.bednarz.nl/mp3/aicha

miseryman
22/04/04, 12:15
Eric B. Bednarz wrote:

> Als je een oude PHP versie hebt bestaat er een handige functie voor:
>
> $message = nl2br($message);
>
> Voor HTML is deze echter al sinds enige tijd verziekt (sinds 4.05
> volgens TFM). Cluelessness considered harmful.

Hoe bedoel je? Omdat PHP tegenwoordig "<br />" teruggeeft i.p.v.
"<br>"? Tja, modern times en zo... :-)

--
Raf

Paul Peters
22/04/04, 14:55
bjorri wrote:

<<>>

> @2p in een windows omgeving werkt jou oplossing helaas niet maar toch
> bedankt voor je antwoord en ook veel plezier met het 'stoeien'.

vreemd ik zit ook in een windowsME omgeving en daar werkt het...

> bjorri

P2 [van Paul Peters]

Eric B. Bednarz
22/04/04, 15:45
miseryman <miseryman_99@yahoo.com> writes:

> Eric B. Bednarz wrote:

[ nl2br() ]

>> Voor HTML is deze echter al sinds enige tijd verziekt (sinds 4.05
>> volgens TFM). Cluelessness considered harmful.
>
> Hoe bedoel je? Omdat PHP tegenwoordig "<br />" teruggeeft i.p.v.
> "<br>"? Tja, modern times en zo... :-)

De formulering 'is now XHTML compliant' is gewoon weerzinwekkend
marketing slime voor 'is now HTML incompliant'.

De conclusie ligt dan ook voor de hand dat PHP niet volwassen genoeg is
voor 'write and forget' toepassingen (Wat als valide output onderdeel
van het contract van de opdrachtnemer of voorwaarde voor bijvoorbeeld
een subsidie voor de opdrachtgever was? En wie is nu aansprakelijk, de
opdrachtnemer, de systeem administrator die na het voltooien van de
opdracht een PHP upgrade heeft uitgevoerd, of de ontwikkelaars?).



--
| ) 111010111011 | http://bednarz.nl/
-(
| ) Distribute me: http://binaries.bednarz.nl/mp3/aicha

Stefan Koopmanschap (remove withoutspam to e-mail)
22/04/04, 16:05
Eric B. Bednarz wrote:
> En wie is nu aansprakelijk, de
> opdrachtnemer, de systeem administrator die na het voltooien van de
> opdracht een PHP upgrade heeft uitgevoerd, of de ontwikkelaars?).

Als je zoals ik gewoon in je contract aangeeft van welke versie je
uitgaat bij de ontwikkeling van het systeem en wat voor soort html je
schrijft, dan is er toch niets aan de hand? bovendien, als de output
verplicht html4 compliant moet zijn oid, dan is elke ontwikkelaar toch
wel slim genoeg om een function my_nl2br() te schrijven?

--
Stefan Koopmanschap
PHP/MySQL developer - websites, intranet and extranet systems and more...
http://www.stefankoopmanschap.com/
php@stefankoopmanschap.com

Eric B. Bednarz
22/04/04, 16:25
"Stefan Koopmanschap writes:

> Als je zoals ik gewoon in je contract aangeeft van welke versie je
> uitgaat bij de ontwikkeling van het systeem en wat voor soort html je
> schrijft, dan is er toch niets aan de hand? bovendien, als de output
> verplicht html4 compliant moet zijn oid, dan is elke ontwikkelaar toch
> wel slim genoeg om een function my_nl2br() te schrijven?

Het punt is het niet kunnen voorspellen van dat soort wijzigingen; als
een taal een specifieke functie ingebakken heeft voor output in een
specifieke andere taal, dan is het zeer vreemd als dit later wordt
*vervangen* door output van een andere specifieke taal. Het had mij dan
verstandiger geleken een nieuwe XHTML specifieke functie op te nemen.
Da's een principiele design kwestie, IMNSHO (anderzijds ging ik hier
kort door de bocht de fout in wat 'validiteit' betreft, in tegenstelling
tot bijvoorbeeld <hr> mag <br> in HTML 4 strict geen kind van body zijn,
en zal de resulterende data content ">" van <br /> nooit een validatie
*fout* op kunnen leveren; toch is dit uitgesproken lelijk).


--
| ) 111010111011 | http://bednarz.nl/
-(
| ) Distribute me: http://binaries.bednarz.nl/mp3/aicha

Stefan Koopmanschap (remove withoutspam to e-mail)
22/04/04, 22:15
Eric B. Bednarz wrote:
> "Stefan Koopmanschap writes:
>>Als je zoals ik gewoon in je contract aangeeft van welke versie je
>>uitgaat bij de ontwikkeling van het systeem en wat voor soort html je
>>schrijft, dan is er toch niets aan de hand? bovendien, als de output
>>verplicht html4 compliant moet zijn oid, dan is elke ontwikkelaar toch
>>wel slim genoeg om een function my_nl2br() te schrijven?
>
> Het punt is het niet kunnen voorspellen van dat soort wijzigingen; als
> een taal een specifieke functie ingebakken heeft voor output in een
> specifieke andere taal, dan is het zeer vreemd als dit later wordt
> *vervangen* door output van een andere specifieke taal. Het had mij dan
> verstandiger geleken een nieuwe XHTML specifieke functie op te nemen.

Ja, daar heb je gelijk in. Hoewel het goed is dat ze vooruit kijken,
hadden ze dit ongetwijfeld beter kunnen ondervangen door bijvoorbeeld de
outputstijl te laten bepalen door een ini setting. op die manier kan je
als programmeur met dezelfde functie precies krijgen wat je wilt.

--
Stefan Koopmanschap
PHP/MySQL developer - websites, intranet and extranet systems and more...
http://www.stefankoopmanschap.com/
php@stefankoopmanschap.com