abonnement Unibet Coolblue Bitvavo
pi_20547519
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. Welke opleiding?
2. Eerlijk gezegd vind ik jouw methode niet om aan te zien.
pi_20547546
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.
1. Zelfstudie. Tegenwoordig wil men niet meer goed scripten, alleen maar werkend.
2. Want? 2x strpos + die regel is gewoon sneller dan het opstarten van je regexp engine. Daarnaast levert het regexpen vaak een onduidelijkheid in je code op als je het later wilt teruglezen. 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 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.
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 10:58:25 #78
1972 Swetsenegger
Egocentrische Narcist
pi_20547551
quote:
Op zondag 11 juli 2004 10:51 schreef Roönaän het volgende:

[..]

$str = substr($str, 0, $van).$replace.substr($str, $tot);
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]);

pi_20547581
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_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);
pi_20547655
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.
quote:
2. Want? 2x strpos + die regel is gewoon sneller dan het opstarten van je regexp engine.
Weegt dat op tegen de onduidelijkheid van 2x strpos + die regel?
quote:
Daarnaast levert het regexpen vaak een onduidelijkheid in je code op als je het later wilt teruglezen.
Eén woord: documenteren
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
Als je lang genoeg met regexps bezig bent, kun je je regexp best makkelijk herkennen.
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.
Met alle respect hoor, maar is dat niet de schuld van de scripter zelf?
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 11:19:07 #81
1972 Swetsenegger
Egocentrische Narcist
pi_20547792
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);
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
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...
pi_20547835
-laat maar-
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 11:24:04 #83
1972 Swetsenegger
Egocentrische Narcist
pi_20547857
quote:
Op zondag 11 juli 2004 11:22 schreef sylvesterrr het volgende:
-laat maar-
jou oplossing ziet er simpeler uit. Alleen weet ik dus niet wat er tussen de [.quote] en [./quote] staat...
pi_20547866
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
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.

Als er bijvoorbeeld [./quote]
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...
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)
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 11:47:07 #85
1972 Swetsenegger
Egocentrische Narcist
pi_20548167
quote:
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.
aha, ok

dus $quote_einde = strpos($quote_invoer, '[./quote]', $quote_start); zegt

zoek in quote_invoer naar [.quote] vanaf de waarde van quote_start

quote_start = quote_invoer VANAF [.quote]
quote_einde=quote_invoer VANAF [./quote]

$quote_invoer = substr($quote_invoer, 0, $quote_start).'[..]'.substr($quote_invoer, $quote_einde);

quote_invoer = quote_invoer vanaf 0 tot (en met?)[.quote]+[..]+[./quote] tot het einde....

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]
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 12:02:42 #86
1972 Swetsenegger
Egocentrische Narcist
pi_20548390
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]
Hmz, niet helemaal:

[.quote]Op zondag 11 juli 2004, 12:00 schreef test het volgende:
[..][./quote]

[./quote]
pi_20548412
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]
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:
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)
0 == "" == false, da's allemaal waar. Maar 0 === "" is false. En 0 === false en "" === false ook.
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 12:07:42 #88
1972 Swetsenegger
Egocentrische Narcist
pi_20548468
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.
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.

Behalve dan dat ik met roonaans code een [./quote] extra overhou....
pi_20548571
quote:
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.
Tja, je weet natuurlijk nooit wat mensen invoeren
quote:
Behalve dan dat ik met roonaans code een [./quote] extra overhou....
$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.
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 12:17:38 #90
1972 Swetsenegger
Egocentrische Narcist
pi_20548624
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.
OE, die is mooier dan mijn verzonnen oplossing:
$quote_invoer=str_replace('[/quote]','',$quote_invoer);

(ik zie dat je al rekening hebt gehouden met de punt )
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 12:20:06 #91
1972 Swetsenegger
Egocentrische Narcist
pi_20548665
Alleen begrijp ik niet dat quote_start WEL goed gaat (en niet tot en met [.quote]) en quote_einde niet
pi_20548729
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
strpos geeft de positie van het begin van die string.
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 12:34:44 #93
1972 Swetsenegger
Egocentrische Narcist
pi_20548834
quote:
Op zondag 11 juli 2004 12:24 schreef sylvesterrr het volgende:

[..]

strpos geeft de positie van het begin van die string.
ja, maar in geval van quote_start toch ook tot en met [.quote]?
Dat begrijp ik tenminste uit de beschrijving op php.net
pi_20549139
quote:
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
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
  FOK!-Schrikkelbaas zondag 11 juli 2004 @ 13:10:22 #95
1972 Swetsenegger
Egocentrische Narcist
pi_20549271
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
Yep, ik zie het nu.

Weer een hoop geleerd vandaag
  FOK!-Schrikkelbaas maandag 12 juli 2004 @ 13:41:39 #96
1972 Swetsenegger
Egocentrische Narcist
pi_20571920
Nog een vraag.
In mijn reactie systeem/gastenboek gaat alles met een POST naar dezelfde php. (Dus het formulier in 'response.php' submit de invoer naar 'response.php' waar het dan verwerkt wordt.

Dit heet het nadeel dat wanneer ik een f5 doe ik het prachtige pop-upje krijg:
Deze pagina kan niet worden vernieuwd zonder opnieuw de gegevens te verzenden...

Klik je dan op retry wordt de submit twee keer gepost. Dat wil ik voorkomen.
Nu heb ik al slim helemaal onderaan in het script alle relevante variabelen ge- unset, maar daar trekt de browser zich niets van aan.

Hoe dan?
pi_20571996
Na het verzenden gewoon meteen redirecten.

header('Location: index.php');
  FOK!-Schrikkelbaas maandag 12 juli 2004 @ 13:45:28 #98
1972 Swetsenegger
Egocentrische Narcist
pi_20572026
quote:
Op maandag 12 juli 2004 13:44 schreef Roönaän het volgende:
Na het verzenden gewoon meteen redirecten.

header('Location: index.php');
eh... snap ik niet.
Wat redirect ik? Ik wil die mensen wel op die pagina houden
pi_20572148
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
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.
  FOK!-Schrikkelbaas maandag 12 juli 2004 @ 14:00:02 #100
1972 Swetsenegger
Egocentrische Narcist
pi_20572406
quote:
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.
Ik snappum wel... ff testen, want dit zou precies zijn wat ik nodig heb
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')