abonnement Unibet Coolblue Bitvavo
  zaterdag 7 januari 2006 @ 01:26:39 #201
30487 crisp
Master of Pumpkins
pi_33787650
quote:
Op vrijdag 6 januari 2006 17:45 schreef JeRa het volgende:
Wanneer komt eigenlijk de volgende PHP Golf?
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


Ik heb namelijk een vrij nutteloze maar best uitdagende PHP-puzzel bedacht die we misschien als extra tussendoortje kunnen doen
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Kom maar op hoor
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
this space for rent
pi_33788738
Poging tot PHP Golf Intermezzo #2
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

Deze keer een probleemstelling die niet zozeer heel erg nuttig is, maar behoorlijk veel inzicht kan opleveren. Een aantal hier kent vast wel het probleem van een programma dat de eigen code moet laten zien zonder simpelweg via een externe weg de broncode te laten zien. In PHP bestaat dat probleem ook, je kunt niet zomaar iets als dit gaan doen:

1<?echo '<?echo \'<?echo \\\'<?.....\';?>';?>


Er is dus een slimmere methode nodig om dat te doen. Deze golf gaat over het vinden van zo'n methode, in zo weinig mogelijk tekens uiteraard.
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


De opdracht
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

"Maak een zo'n kort mogelijk script dat, wanneer het door de PHP-parser wordt gehaald, het eigen script oplevert in de output. De output en het script zelf dienen dus identiek te zijn."

De voorwaarden
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

1. Het script mag geen warnings opleveren, PHP draait niet in strict mode.
2. Het script moet platformonafhankelijk werken (m.a.w., geen commands).
3. Het script moet een daadwerkelijk PHP-script zijn en niet zomaar een leeg (of tekst-)bestand.
4. De output van het script dient tot in de bits identiek te zijn als het script zelf.
5. Er wordt uitgegaan van niet-HTML output, dus no need for <br>
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

6. Het script mag het eigen script niet openen (helaas, geen echo file_get_contents()).
7. Alle zwakke oplossingen zoals het opvragen van externe bronnen leiden tot groot eerverlies en uitsluiting van deelname.
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


De deelname
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

Mocht je een oplossing hebben bedacht, dan kan dat worden gestuurd naar golf@gmta.nl. Het punt van sluiting is zaterdag 14 januari om 18:00.

[ Bericht 3% gewijzigd door JeRa op 07-01-2006 02:22:21 ]
pi_33792602
* SuperRembo trapt af met 54
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 7 januari 2006 @ 13:15:07 #204
30487 crisp
Master of Pumpkins
pi_33795916
Een quine dus
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
this space for rent
pi_33799887
Er staat er zelfs een in de comments bij de functie xxxxxx op php.net
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_33801110
Whehe heb er nu eentje met 117 tekens, vindt het al heel wat dat het me gelukt is
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

Tis wel heel erg simpeltjes hoor, hoe ik het heb gedaan
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
'And I called your name,
like an addicted to cocaine calls for the stuff he'd rather blame'
  zaterdag 7 januari 2006 @ 17:04:04 #207
30487 crisp
Master of Pumpkins
pi_33803202
Ik heb er al 3; een van 140, van 130 en van 56
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
this space for rent
pi_33804288
Dus ff ter vertaling, je de output van het script moet het zelfde zijn als de broncode van het script?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33805036
quote:
Op zaterdag 7 januari 2006 17:35 schreef Chandler het volgende:
Dus ff ter vertaling, je de output van het script moet het zelfde zijn als de broncode van het script?
Ja, dat staat er wel
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
quote:
Op zaterdag 7 januari 2006 02:14 schreef JeRa het volgende:

De opdracht
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie

"... De output en het script zelf dienen dus identiek te zijn."
pi_33807721
quote:
Op zaterdag 7 januari 2006 15:24 schreef SuperRembo het volgende:
Er staat er zelfs een in de comments bij de functie xxxxxx op php.net
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Ja inderdaad. Maargoed dan kom je nog maar op 65 tekens uit.
Mijne zit nu trouwens op 116 tekens, dom dingetje over het hoofd gezien
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
.
'And I called your name,
like an addicted to cocaine calls for the stuff he'd rather blame'
  zondag 8 januari 2006 @ 11:50:16 #211
30487 crisp
Master of Pumpkins
pi_33826577
Woei, 44
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
this space for rent
  maandag 9 januari 2006 @ 22:49:43 #212
30487 crisp
Master of Pumpkins
pi_33886129
Heb ik de lat nu al te hoog gelegd?
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
this space for rent
pi_33886417
Misschien heeft SuperRembo nog iets...?
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
  vrijdag 13 januari 2006 @ 23:37:11 #214
30487 crisp
Master of Pumpkins
pi_34033277
< 1 dag te gaan...
this space for rent
pi_34040477
sjit geen tijd voor gehad (onzin natuurlijk, geheel vergeten) wil de uitkomsten wel zien!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_34051656
In die 62 minuten die iedereen nog heeft kunnen er best nog wel wat meer inzendingen gedaan worden
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
maakt niet uit of het de kortste is, ik wil alleen wel wat meer variatie zien dan alleen de 2 die ik nu binnen heb
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
anders is het typen ook zo gauw gedaan.
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
pi_34052790
Crisp had toch 3 versies?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34053175
quote:
Op zaterdag 14 januari 2006 17:33 schreef SuperRembo het volgende:
Crisp had toch 3 versies?
Heb er maar één ontvangen
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
  zaterdag 14 januari 2006 @ 17:54:30 #219
30487 crisp
Master of Pumpkins
pi_34053538
quote:
Op zaterdag 14 januari 2006 17:44 schreef JeRa het volgende:

[..]

Heb er maar één ontvangen
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Ik heb je later nog een mail gestuurd met daarin 3 alternatieven - welliswaar allemaal gebaseerd op voorbeelden die je ook op het web vind, maar toch...
this space for rent
pi_34053607
quote:
Op zaterdag 14 januari 2006 17:54 schreef crisp het volgende:

[..]

Ik heb je later nog een mail gestuurd met daarin 3 alternatieven - welliswaar allemaal gebaseerd op voorbeelden die je ook op het web vind, maar toch...
Daar heb je helemaal gelijk in.
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


Ik heb er nu vijf zes, ik zal proberen straks nog een stukje hier te zetten, anders wordt het vannacht pas.
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


[ Bericht 2% gewijzigd door JeRa op 14-01-2006 18:36:39 ]
  zondag 15 januari 2006 @ 00:56:04 #221
30487 crisp
Master of Pumpkins
pi_34070346
Het is nacht
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


Anyway, ik weet niet of het posten van het zoekwoord 'quine' nu debit is geweest aan de respons. Ik had gehoopt dat het makkelijk kunnen vinden van voorbeelden juist zou bijdragen...

De meeste PHP-gerelateerde voorbeelden zijn echter nogal 'lang' op het voorbeeld in de usercomments voor de printf() functie na...
this space for rent
pi_34074131
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
PHP Golf Intermezzo #2 - de uitslagen
De opdracht van deze tussen-golf was het maken van een PHP-script dat als output het eigen script omvatte. Al snel werd het keyword 'quine' genoemd waardoor het niet zo moeilijk was om een codevoorbeeld te vinden, maar zoveel korte voorbeeldquines in PHP zijn er helaas niet... Gruwelijk veel mensen zijn hier mee bezig geweest maar uiteindelijk wisten slechts twee mensen de mailknop te vinden om toch nog binnen de tijd hun brouwsels op te sturen. We beginnen met de oplossing met het meest aantal tekens;

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Crisp - 131 tekens:

1<?$a='PD8kYT0nKic7ZWNobyBzdHJfcmVwbGFjZShjaHIoNDIpLCRhLGJhc2U2NF9kZWNvZGUoJGEpKTs=';echo str_replace(chr(42),$a,base64_decode($a));


Dit is een klassieker in de quine-wereld. De variabele $a bevat een base64 geëncoded stukje code die na een base64_decode() er zo uit ziet:
1<?$a='*';echo str_replace(chr(42),$a,base64_decode($a));


chr(42) is de benoeming voor de asterisk ('*') en dit tekentje wordt dan ook na de base64_decode() vervangen door de inhoud van variabele $a, de geëncodeerde code. Hierdoor kom je op exact dezelfde code uit als hetgeen je mee begint.

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
SuperRembo - 113 tekens:
1<?$s="6563686F273C3F24733D22272E24732E27223B272E7061636B2822482A222C2473293B";echo'<?$s="'.$s.'";'.pack("H*",$s);


SuperRembo maakt slim gebruik van de pack() functie die PHP heeft overgeërfd vanuit Perl. Het resultaat van de pack() functie zoals hij hierboven staat is dit:
1echo'<?$s="'.$s.'";'.pack("H*",$s);


Dit zorgt ervoor dat na uitvoering net zoals bij de base64_decode() variant van Crisp de output exact hetzelfde is als het script.

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Crisp - 63 tekens:
1<?eval($c='echo\'<?eval($c=\\\'\'.addslashes($c).\'\\\');\';');


Een aanzienlijk kortere quine met een duidelijk andere aanpak. Crisp maakt gebruik van het feit dat een toewijzing aan een variabele ($c=...) de inhoud van de toewijzing zelf terug geeft en dus gebruikt kan worden als parameter van eval(). De inhoud van $c is echter een PHP-scriptje met een echo welke de inhoud van het script toont. Dit werkt doordat éérst $c wordt toegewezen tijdens het verwerken van de parameter van eval(), waarna vervolgens de eval daadwerkelijk wordt uitgevoerd. Een slimme aanpak die we straks nog terug zullen zien.

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Crisp - ongeldig:
1<?=printf($a='<?=printf($a=%c%s%c,39,$a,39);',39,$a,39);


Het idee is goed, alleen vergeet Crisp hier dat printf() de lengte van de geoutputte string teruggeeft en dat de output in dit geval niet gelijk is aan het PHP-script zelf.

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
SuperRembo - 54 tekens:
1<?printf($x='<?printf($x=%c%s%c,39,$x,39);',39,$x,39);


Nu wordt het serieus, SuperRembo heeft in principe dezelfde quine als de voorgaande met het verschil dat deze foutloos is en dus geen '<?=' bevat. printf() kan worden gebruikt om een string te 'formatten' met variabelen. Dit houdt in dat je in de string zelf bepaalde codes opgeeft die je later laat vervangen door de inhoud van variabelen. printf() neemt als eerste argument de string die geformat dient te worden, en als volgende argumenten de variabelen die in die string geplaatst dienen te worden. De code '%c' staat voor 'character' en geeft in principe de waarde terug van chr($n). De code '%s' staat voor 'string' en plaatst op die plek het argument als een string.

Code 39 staat voor de apostrofe (') en $x wordt in de string geplaatst waardoor de output verdacht veel op het script zelf lijkt
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
hier is dit ook weer mogelijk aangezien in PHP de argumenten van links naar rechts worden verwerkt en $x dus éérst gevuld wordt voordat het in de string wordt gezet.

om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Crisp - 44 tekens:
1<?eval($c='echo"<?eval(\$c=\x27$c\x27);";');


Crisp laat duidelijk zien waar hij toe in staat is en verbetert zijn eval()-quine door slim gebruik te maken van escaped characters in dubbel quoted strings. De '\x27' is een speciale manier om in dubbel quoted strings de apostrofe weer te geven waardoor er nu geen apostrofes meer hoeven te worden ge-escaped. Een addslashes() neemt vrij veel tekens in en dit is dan ook een slimme manier om aan de geweldige 44 tekens te komen.

Crisp, gefeliciteerd!
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
pi_34079595
Gefeliciteerd
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie


Het wordt tijd voor een php sectie op The Quine Page.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38834921
Na een lange stilte is er weer een nieuwe editie van PHP Golf bij PHP Freakz.nl
quote:
Doelstelling
Je ontmoet wel eens leuke meiden waarvan jij je nummer wilt geven. Alleen is het veel cooler als jij je nummer in woorden kan geven. Op meeste telefoons zitten de letters op deze nummers:
0 => 0
1 => 1
2 => abc
3 => def
4 => ghi
5 => jkl
6 => mno
7 => pqrs
8 => tuv
9 => wxyz
Dus 0900-8844 (nummer van politie) kan 0Z00-TUIG worden en 09008844 wordt 0Z00TUIG. Nu is de bedoeling dat jij een script schrijft die alle mogelijkheden geeft wanneer je een telefoonnummer ingeeft. Elk mogelijke uitkomst moet worden weergeven op haar eigen regel.
Voorbeelden van geldige telefoonnummers:
06-12345678
0612345678
0900-8844
09008844
000-1234567
0001234567

Je mag er vanuit gaan dat de nummer uit $_GET komt met key 'nr' en dat deze altijd set is.

Deadline
De deadline is over 8 dagen.
Dinsdag 18:00 20 juni 2006
GEEN OPLOSSINGEN POSTEN

De volledige opgave staat in het topic bij phpfreakz.nl.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38843278
tvp. Ik ben er twee uur mee bezig geweest, maar nog niks wat enigzins klein is. Ik ben niet zo goed in ranzige code
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
Maar ik moet en zal iets inleveren voor dinsdag
om deze externe inhoud weer te geven is het noodzakelijk dat je toestemming geeft voor het gebruik van tracking en social mediacookies.
Ja toon me deze inhoud
ik accepteer de cookies.
meer informatie
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')

Het lijkt erop dat je onze advertenties blokkeert

Dat begrijpen we, maar is wel erg jammer. Je kunt FOK! namelijk wel gratis LEZEN, maar we kunnen FOK! niet gratis MAKEN. De inkomsten van de advertenties zorgen ervoor dat we de kosten van de site kunnen dragen zodat je ook morgen FOK! nog kunt bezoeken.

Zou je willen overwegen om voor FOK! een uitzondering te maken in je adblocker (of andere middelen die onze ads blokkeren)? Je krijgt deze melding dan nooit meer te zien.

Ja, ik wil fok.nl whitelisten, laat me zien hoe

Ik neem liever een premium account zodat ik geen advertenties hoef te zien (je moet eerst inloggen)
Ja, breng me naar de shop