1. Welke opleiding?quote:Op zondag 11 juli 2004 10:51 schreef Roönaän het volgende:
[..]
Performance gericht scripten is tegenwoordig geen onderdeel van de opleiding meer?
1. Zelfstudie. Tegenwoordig wil men niet meer goed scripten, alleen maar werkend.quote:Op zondag 11 juli 2004 10:54 schreef sylvesterrr het volgende:
[..]
1. Welke opleiding?
2. Eerlijk gezegd vind ik jouw methode niet om aan te zien.
ff kijken of ik het begrijp...quote:Op zondag 11 juli 2004 10:51 schreef Roönaän het volgende:
[..]
$str = substr($str, 0, $van).$replace.substr($str, $tot);
quote:Op zondag 11 juli 2004 10:58 schreef Swetsenegger het volgende:
[..]
ff kijken of ik het begrijp...
ik heb....
$quote_invoer=$row['invoer'];
Maar daar kan dus al een [.quote]blabla[./quote] in staan.
Ik wil dus quotes in quotes vermijden, net als hier op fok.
Dus het wordt dan
$quote_invoer=substr($quote_invoer,0,[.quote]).$weetnietwathiermoet($quote_invoer,[./quote]);
quote:Op zondag 11 juli 2004 10:57 schreef Roönaän het volgende:
[..]
1. Zelfstudie. Tegenwoordig wil men niet meer goed scripten, alleen maar werkend.
Weegt dat op tegen de onduidelijkheid van 2x strpos + die regel?quote:2. Want? 2x strpos + die regel is gewoon sneller dan het opstarten van je regexp engine.
Eén woord: documenterenquote:Daarnaast levert het regexpen vaak een onduidelijkheid in je code op als je het later wilt teruglezen.
Als je lang genoeg met regexps bezig bent, kun je je regexp best makkelijk herkennen.quote:Je kan in één oogopslag zien wat er gebeurt bij de substr.$t.substr methode, wat je bij het regexpen altijd een moment nadenken kost
Met alle respect hoor, maar is dat niet de schuld van de scripter zelf?quote:en een secure check of je misschien niet vergeten bent een \ een quote of een ^ bent vergeten te lezen waardoor de betekenis 100% anders is dan je eerst had gedacht.
Even ontleden, want gewoon copy paste is niet voldoende....quote:Op zondag 11 juli 2004 11:01 schreef Roönaän het volgende:
[..]
$quote_start = strpos($quote_invoer, '[.quote]');
$quote_einde = strpos($quote_invoer, '[./quote]', $quote_start);
if($quote_start !== false && $quote_einde !== false)
$quote_invoer = substr($quote_invoer, 0, $quote_start).'[..]'.substr($quote_invoer, $quote_einde);
jou oplossing ziet er simpeler uit. Alleen weet ik dus niet wat er tussen de [.quote] en [./quote] staat...quote:Op zondag 11 juli 2004 11:22 schreef sylvesterrr het volgende:
-laat maar-
StrPos is de php versie van de java methode string.indexOf. De eerste param, is de haystack, de tweede de needle. De derde ($quote_start) geeft aan vanaf welke index er gezocht mag worden.quote:Op zondag 11 juli 2004 11:19 schreef Swetsenegger het volgende:
[..]
Even ontleden, want gewoon copy paste is niet voldoende....
Ok,
variabele quote_start wordt dan [.quote]
quote_einde wordt.... [./quote]... maar wat doet die $quote_start daar
Jups. StrPos geeft false terug als een substring niet gevonden wordt. Als je dit niet eerst test, gebeuren er mogelijk rare dingen (omdat false bij casting naar een int gelijk wordt gezet aan 0 geloof ik)quote:[./quote] zou staan, dan zou je zonder die derde param de eerste [./quote] krijgen waardoor later je replace gedeelte krom loopt (je eindindex is lager dan je beginindex). Als je die derde param toevoegt kijkt die alleen naar het stuk na [.quote] en vind die dus de goede, tweede, [./quote]
[quote]
als quote_start niet gelijk is aan 'false EN "e_einde niet gelijk is aan 'false'... dan wordt
quote_invoer gelijk aan quote_invoer vanaf positie 0 t/m positie quote_start + [..] + quote_invoer vanaf quote _einde...
aha, okquote:Op zondag 11 juli 2004 11:25 schreef Roönaän het volgende:
[..]
StrPos is de php versie van de java methode string.indexOf. De eerste param, is de haystack, de tweede de needle. De derde ($quote_start) geeft aan vanaf welke index er gezocht mag worden.
Hmz, niet helemaal:quote:Op zondag 11 juli 2004 11:47 schreef Swetsenegger het volgende:
Maar volgens mij levert dit:
[.quote]Op 11-07 zei Swets bladiebla[.quote][..][./quote][./quote]
en niet
[.quote]Op 11-07 zei Swets bladiebla[..][./quote]
Maar hoe zit dat dan als je een tekst hebt met [.quote] en dan nog een keer [.quote], dan gevolgd door een [./quote] en om alles af te sluiten weer een [./quote]? En om het leuker te maken kun je ook nog meerdere quotes neerzetten natuurlijk.quote:Op zondag 11 juli 2004 11:25 schreef Roönaän het volgende:
Als er bijvoorbeeld [./quote]
[./quote] zou staan, dan zou je zonder die derde param de eerste [./quote] krijgen waardoor later je replace gedeelte krom loopt (je eindindex is lager dan je beginindex). Als je die derde param toevoegt kijkt die alleen naar het stuk na [.quote] en vind die dus de goede, tweede, [./quote]
0 == "" == false, da's allemaal waar. Maar 0 === "" is false. En 0 === false en "" === false ook.quote:Jups. StrPos geeft false terug als een substring niet gevonden wordt. Als je dit niet eerst test, gebeuren er mogelijk rare dingen (omdat false bij casting naar een int gelijk wordt gezet aan 0 geloof ik)
Mjah, in principe voorkom ik nu dat er nooit meer dan 2 keer een [.quote] en [./quote] in de tabel komt te staan.quote:Op zondag 11 juli 2004 12:03 schreef Light het volgende:
[..]
Maar hoe zit dat dan als je een tekst hebt met [.quote] en dan nog een keer [.quote], dan gevolgd door een [./quote] en om alles af te sluiten weer een [./quote]? En om het leuker te maken kun je ook nog meerdere quotes neerzetten natuurlijk.
[..]
0 == "" == false, da's allemaal waar. Maar 0 === "" is false. En 0 === false en "" === false ook.
Tja, je weet natuurlijk nooit wat mensen invoerenquote:Op zondag 11 juli 2004 12:07 schreef Swetsenegger het volgende:
[..]
Mjah, in principe voorkom ik nu dat er nooit meer dan 2 keer een [.quote] en [./quote] in de tabel komt te staan.
Als mensen handmatig TTC (das mijn variant van UBB codes) gaan toevoegen, gaat het uieraard mis.
Wanneer iemand gewoon 'quote' klikt en zijn aanvulling erbij zet niet.
$quote_invoer = substr($quote_invoer, 0, $quote_start).'[..]'.substr($quote_invoer, $quote_einde+8); Dan begin je niet meer op de plek van die [./quote] met je tweede substring, maar 8 plaatsen verder. Dan zou je precies die [./quote] gehad moete hebben.quote:Behalve dan dat ik met roonaans code een [./quote] extra overhou....
OE, die is mooier dan mijn verzonnen oplossing:quote:Op zondag 11 juli 2004 12:14 schreef Light het volgende:
[..]
Tja, je weet natuurlijk nooit wat mensen invoeren
[..]
$quote_invoer = substr($quote_invoer, 0, $quote_start).'[..]'.substr($quote_invoer, $quote_einde+8); Dan begin je niet meer op de plek van die [./quote] met je tweede substring, maar 8 plaatsen verder. Dan zou je precies die [./quote] gehad moete hebben.
strpos geeft de positie van het begin van die string.quote:Op zondag 11 juli 2004 12:20 schreef Swetsenegger het volgende:
Alleen begrijp ik niet dat quote_start WEL goed gaat (en niet tot en met [.quote]) en quote_einde niet
ja, maar in geval van quote_start toch ook tot en met [.quote]?quote:Op zondag 11 juli 2004 12:24 schreef sylvesterrr het volgende:
[..]
strpos geeft de positie van het begin van die string.
quote_start geeft aan waar de [.quote] begint. Maar quote_start wordt als lengte gebruikt in substr. En omdat we altijd bij nul beginnen te tellen klopt het weer precies. Quote_start geeft dus niet alleen aan waar [.quote] begint maar ook hoeveel tekens er voor [.quote] staan, en dat gebruik jequote:Op zondag 11 juli 2004 12:34 schreef Swetsenegger het volgende:
[..]
ja, maar in geval van quote_start toch ook tot en met [.quote]?
Dat begrijp ik tenminste uit de beschrijving op php.net
Yep, ik zie het nu.quote:Op zondag 11 juli 2004 13:00 schreef Light het volgende:
[..]
quote_start geeft aan waar de [.quote] begint. Maar quote_start wordt als lengte gebruikt in substr. En omdat we altijd bij nul beginnen te tellen klopt het weer precies. Quote_start geeft dus niet alleen aan waar [.quote] begint maar ook hoeveel tekens er voor [.quote] staan, en dat gebruik je
eh... snap ik niet.quote:Op maandag 12 juli 2004 13:44 schreef Roönaän het volgende:
Na het verzenden gewoon meteen redirecten.
header('Location: index.php');
Ah okee.quote:Op maandag 12 juli 2004 13:45 schreef Swetsenegger het volgende:
[..]
eh... snap ik niet.
Wat redirect ik? Ik wil die mensen wel op die pagina houden
Ik snappum wel... ff testen, want dit zou precies zijn wat ik nodig hebquote:Op maandag 12 juli 2004 13:49 schreef Roönaän het volgende:
[..]
Ah okee.
Het idee is dat je via die header() functie tegen de browser zegt dat die naar een andere locatie gaat.
Evn denken. Jij wil dat die op dezelfde pagina blijft (response.php) maar dat hij als het waren het POST gebeuren vergeet.
Als je dan header('Location: response.php') doet, dan ontvangt de browser dit, die vervolgens response.php opnieuw van de server inleest als GET request:
Browser -> Server: POST response.php?bericht=....enz
Server->Browser: Header:Location: response.php
Browser -> Server GET response.php
Als iemand dan F5 doet is de laatst geladen pagina die GET response.php en ben je dus van het POST verhaal af.
/brakke uitleg.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |