[PHP] Wat vinden jullie van dit experimentje?

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Joske Pauwels
  • Registratie: Februari 2001
  • Laatst online: 19-07-2016

Joske Pauwels

Stelt zich vragen...

Topicstarter
Enkele dagen geleden mailde iemand me deze interessante tekst door:
Vlgones een oznrdeeok op een Eglnese uvinretsiet mkaat het neit uit in wlkee vloogdre de ltteers in een wrood saatn, het einge wat blegnaijrk is is dat de eretse en de ltaatse ltteer op de jiutse patals saatn. De rset van de ltteers mgoen wllikueirg gpletaast wdoren en je knut vrelvogens gwoeon lzeen wat er saatt. Dit kmot odmat we neit ekle ltteer op zcih lzeen maar het wrood als gheeel.
Ik vond het wel een interessant idee, en heb daarom een pagina gemaakt die het randomizen etc. automatisch doet.
Hier te vinden: http://www.clubstore.com/woordvolgorde/.

Toch heb ik nog enkele probleempjes:
  • Als men leestekens zoals een punt invoert, gaat het PHP script deze niet onderscheiden. (Probeer bvb eens dit) Ik was aan het denken om gewoon alle karakters die geen letter zijn eerst uit de string te verwijderen, of heeft er iemand een idee hoe we ze werkelijk kunnen behouden?
  • In praktijk blijken de echt random gegenereerde woorden toch moeilijker leesbaar dan het voorbeeld. Pech! :+
Hier is de code van het PHP script; de te verwerken zin wordt aangeleverd als $_GET['zin'], en de output gebeurt gewoon door te echo'en...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$woorden = explode(" ", $_GET['zin']);
$aantal_woordenen = count($woorden);

for ($i = 0; $i < $aantal_woordenen; $i++)
{
    $woord = $woorden[$i];
    $aantal_letters = strlen($woord);
    if($aantal_letters > 1)
    {
        $eerste_letter = $woord{0};
        $midden = substr($woord, 1, $aantal_letters-2);
        $midden_random = str_shuffle($midden);

        $laatste_letter = $woord{$aantal_letters-1};

        echo $eerste_letter . $midden_random . $laatste_letter . " ";
    }
    else echo $woord{0};
}


Als er iemand tips heeft om het te verfijnen: steeds welkom! Bedankt!

[ Voor 4% gewijzigd door Joske Pauwels op 23-09-2003 21:24 ]


Acties:
  • 0 Henk 'm!

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 10:52
Het klopt ook nog, ik lees het inderdaad volledig.

Acties:
  • 0 Henk 'm!

  • The Evil Brain
  • Registratie: Februari 2003
  • Laatst online: 14-09 15:49
inderdaad, leuk experimentje. Als ik echter een woord als 'website' invoer, dan komt er iets als 'wbstiee', en dat vind ik dan wel weer moeilijk(er) terug te leiden naar het origineel. Geen commentaar op je scriptje dus, gewoon een psychologische opmerking :+

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
modbreak: Dit forum is nog altijd P&W. Gelieve het topic dan ook te beperken tot de vraag van de TS mbt zijn script

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Joske Pauwels
  • Registratie: Februari 2001
  • Laatst online: 19-07-2016

Joske Pauwels

Stelt zich vragen...

Topicstarter
The Evil Brain schreef op 23 September 2003 @ 20:54:
inderdaad, leuk experimentje. Als ik echter een woord als 'website' invoer, dan komt er iets als 'wbstiee', en dat vind ik dan wel weer moeilijk(er) terug te leiden naar het origineel. Geen commentaar op je scriptje dus, gewoon een psychologische opmerking :+
Ik weet het, ik heb dit ook aangehaald in de lijst met gekende problemen; maar ik vrees dat dit gewoon eigen is aan het concept. Het is de uitwerking die ik graag zou "perfectioneren", en ik vind blijkbaar de juiste stringfuncties niet (als deze ervoor bestaan)...

[ Voor 5% gewijzigd door Joske Pauwels op 23-09-2003 21:00 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je probleem is natuurlijk simpelweg op te lossen door gebruik te maken van regular expressions

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Joske Pauwels
  • Registratie: Februari 2001
  • Laatst online: 19-07-2016

Joske Pauwels

Stelt zich vragen...

Topicstarter
.oisyn schreef op 23 september 2003 @ 21:05:
Je probleem is natuurlijk simpelweg op te lossen door gebruik te maken van regular expressions
Welke nog steeds een mysterie voor me zijn :)

Maar dat is dan voor eht verwijderen van allen niet-letters? Want ik dacht eerder aan een systeem dat dingen als punten behoudt, en enkel de letter-woorden gaat aanpassen... Zou dit technisch haalbaar zijn, of wordt het dan walgelijk ingewikkeld?

[ Voor 26% gewijzigd door Joske Pauwels op 23-09-2003 21:18 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je pakt het verkeerd aan. Je moet een lijst hebben met alle woorden en alle niet-woorden. Dan kun je de woorden gaan husselen, en mbv de niet-woorden de zin opnieuw construeren

preg_match_all () is je vriend

[ Voor 14% gewijzigd door .oisyn op 23-09-2003 21:22 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Je moet sowieso niet te fukken met woorden van te veel lettergrepen. Ra ra welk (redelijk gangbaar) woord is dit: andimroibegtjeusasirtf. Het experimentje is dus maar van betrekkelijke waarde. In het Engels werkt het ongetwijfeld beter, omdat men daar de neiging heeft samenstellingen los te schrijven (terwijl we dat in het Nederlands juist aan elkaar doen).

[ Voor 3% gewijzigd door Soultaker op 23-09-2003 21:23 ]


Acties:
  • 0 Henk 'm!

  • The Evil Brain
  • Registratie: Februari 2003
  • Laatst online: 14-09 15:49
misschien begrijp ik dit verkeerd, maar de zinsvolgorde blijft toch gewoon hetzelfde? en wat jij nu zegt is dus dat je dit gaat veranderen? of bedoel je dit niet?

Acties:
  • 0 Henk 'm!

  • Joske Pauwels
  • Registratie: Februari 2001
  • Laatst online: 19-07-2016

Joske Pauwels

Stelt zich vragen...

Topicstarter
The Evil Brain: Nee, ik wil gewoon woorden waar een punt etc. aan plakt hustlen, met de laatste letter en het punt achteraan behouden. Nu wordt het punt als laatste letter genomen, en wordt de echte laatste letter maar ergens willekeurig gegooid.

Soultaker: daar heb je een punt!

.oisyn: bedankt! zal ik eens naar zoeken..

Ik heb trouwens het script lichtjes aangepast, zodat hij woorden van één lettergreep (zoals u) niet meer als "uu" parsed...

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

voor de aardigheid even het javascriptje waarmee ik al enkele malen de HK heb geterroriseerd:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<script type="text/javascript">
window.onload=function(){
  var s=[document.body],i=0,e,j;
  do{
    e=s[i];
    if(e.nodeType==3){
      e.nodeValue=e.nodeValue.replace(/\w{4,}/g,function($0){
        var s=$0.charAt(0),i=$0.length-2,r;
        do{
          r=Math.ceil(Math.random()*i);
          s+=$0.charAt(r);
          $0=($0.substring(0,r)+$0.substring(r+1,i+2))
        }while(--i);
        s+=$0.charAt(1);
        return s
      })
    }else{
      j=e.childNodes.length;
      while(j)s[i++]=e.childNodes.item(--j)
    }
  }while(i--)
}
</script>

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

offtopic:
verkeerde knopje; quote ipv edit |:(


dan maar even van de gelegenheid gebruikmaken om wat nader uit te leggen: ik lees dus alle nodes uit van een HTML document. Als het geen textnode is push ik ze op een stack, anders haal ik ze door een regexp die alle woorden van meer dan 4 letters/cijfers door elkaar husselt.
Hiervoor gebruik ik dus een regExp met als syntax /\w{4,}/ waardoor ik alleen woorden die in aanmerking komen uiteindelijk hussel, en leestekens e.d. buiten beschouwing laat.
Dit gaat net zo lang door totdat de stack weer leeg is (voor non-textnodes bekijk ik dus telkens of die nog andere childNodes heeft), en ik dus het hele document heb gehad :)

Erg obfuscated om het gehele script zo klein mogelijk te houden verder, maar hopelijk wel begrijpbaar.

[ Voor 204% gewijzigd door crisp op 23-09-2003 21:40 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

even proberen hoor :P
woei het werkt :+
zo, weer normaal

[ Voor 104% gewijzigd door .oisyn op 23-09-2003 22:05 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • The Evil Brain
  • Registratie: Februari 2003
  • Laatst online: 14-09 15:49
Joske Pauwels schreef op 23 September 2003 @ 21:26:
The Evil Brain: Nee, ik wil gewoon woorden waar een punt etc. aan plakt hustlen, met de laatste letter en het punt achteraan behouden. Nu wordt het punt als laatste letter genomen, en wordt de echte laatste letter maar ergens willekeurig gegooid.
nee okee, dan begreep ik het toch goed maar las ik het verkeerd :D

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
.oisyn schreef op 23 september 2003 @ 22:03:
even proberen hoor :P
woei het werkt :+
zo, weer normaal
Je had het forum zo moeten laten! ;)

{signature}


Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 16-09 22:43
Soultaker schreef op 23 September 2003 @ 21:23:
Ra ra welk (redelijk gangbaar) woord is dit: andimroibegtjeusasirtf.
Uehm... misschien aintsoeuibdaemijsrrtgf ?
aeejtiisdntiaumrbrsgof ?
agbodueaetjnmistirrsif ?
ajmaietsobdsgiernrtiuf ?
amateurintogissbedrijf ?

Aaargh ik geef het op ....... :)

[ Voor 4% gewijzigd door farlane op 24-09-2003 00:01 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Johnny
  • Registratie: December 2001
  • Laatst online: 17-09 16:59

Johnny

ondergewaardeerde internetguru

farlane schreef op 23 September 2003 @ 23:59:
[...]


Uehm... misschien aintsoeuibdaemijsrrtgf ?
aeejtiisdntiaumrbrsgof ?
agbodueaetjnmistirrsif ?
ajmaietsobdsgiernrtiuf ?
amateurintogissbedrijf ?

Aaargh ik geef het op ....... :)
Automatischeringsbedrijf?

Naast het feit dat je in het Nederlands veel woorden aan elkaar plakt zijn er ook nog eens klanken zoals "eu, ou, au, ui, ie, ei, ij" die je eigenlijk niet door elkaar mag halen. Omdat twee letters hier een enkele klank vormen zal de lezer de klanken niet meer kunnen herkennen zodra je de volgorde veranders ("ji -> ji" kan wel, maar "lijk -> jlki" en "ei -> ie" is een probleem

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Johnny schreef op 24 September 2003 @ 00:47:
[...]


Automatischeringsbedrijf?

Naast het feit dat je in het Nederlands veel woorden aan elkaar plakt zijn er ook nog eens klanken zoals "eu, ou, au, ui, ie, ei, ij" die je eigenlijk niet door elkaar mag halen. Omdat twee letters hier een enkele klank vormen zal de lezer de klanken niet meer kunnen herkennen zodra je de volgorde veranders ("ji -> ji" kan wel, maar "lijk -> jlki" en "ei -> ie" is een probleem
dan zou je dus in feite alleen medeklinkers en klinkergroepen moeten husselen?

Intentionally left blank


Verwijderd

Neem is contact op met TS van dit topic zou ik zeggen.
Je bent niet de eerste met hetzelfde idee. >:)


Lettervolgorde

  • Joske Pauwels
  • Registratie: Februari 2001
  • Laatst online: 19-07-2016

Joske Pauwels

Stelt zich vragen...

Topicstarter
Lol, vreemd dat er iemand net op hetzelfde idee kwam :)

Krachten bundelen dus! (hoewel mijn probleem me eerder technisch leek; maar het idee van tweeklanken niet te husselen is idd erg goed!)

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17-09 21:27

Creepy

Tactical Espionage Splatterer

Joske Pauwels schreef op 24 September 2003 @ 14:08:
Lol, vreemd dat er iemand net op hetzelfde idee kwam :)
Vreemd? Ik heb de Word macro's, Perl one-liners e.d. en een weekje terug voorbij zien vliegen ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 03:13
Dat was 'm! (Maar dan zonder ch ;)) Cool dat je dat nog kon terugvinden...
Naast het feit dat je in het Nederlands veel woorden aan elkaar plakt zijn er ook nog eens klanken zoals "eu, ou, au, ui, ie, ei, ij" die je eigenlijk niet door elkaar mag halen. Omdat twee letters hier een enkele klank vormen zal de lezer de klanken niet meer kunnen herkennen zodra je de volgorde veranders ("ji -> ji" kan wel, maar "lijk -> jlki" en "ei -> ie" is een probleem
Dat is inderdaad ook een groot probleem...

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
:p lachen, alleen is het toch niet net zo goed leesbaar ;)
Pagina: 1