Gå til innhold

Dabear's PHP Programming challenges[4th challenge]


Anbefalte innlegg

Videoannonse
Annonse

Ok, da er oppgave 2 avslutta. Scramble og unscramble-funksjonen er lagt ved.

 

Klikk for å se/fjerne innholdet nedenfor

<?php
function scramble($astr)
{
   $astr = strrev($astr) . strrev($astr);

   $new ='';

   $len = strlen($astr);
   for($i=0; $i < $len; $i++)
   {
       $char = '%%'.ord($astr[$i]) . '%%'. str_rot13($astr[$i]);
       $new .= $char;
   }
   
   return $new;
}

function unscramble($astr)
{
   $astr = preg_replace('/%%(\d)+%%/', '', $astr);
   $astr = substr($astr,0, strlen($astr)/2);
   
   $new ='';

   $len = strlen($astr);
   for($i=0; $i < $len; $i++)
   {
       $char = $astr[$i];
   
     
           
           $new .= str_rot13($char);
       
   }

   return strrev($new);    

}
?>

 

 

Neste utfordring kommer seinere i dag. Den vil nok være enkel så snart du ser logikken. Jeg poster ikke løsningene som er kommet inn; det får de respektive deltakerne gjøre sjøl om de føler for det ;)

 

PS! Jeg gjentar at jeg trenger tips til utfordringer, så send gjerne en PM, så lager jeg muligens en oppgave av dine ideer.

Lenke til kommentar
Det der skjønte jeg _lite_ av.

 

Kan du si om det har noe med bildefunksjoner, eller bare tallet 1884?

7886317[/snapback]

Hvis det er å generere et tilfeldig tall i et bilde for å bruke det som captcha så kan man vel gjøre noe slikt:

Klikk for å se/fjerne innholdet nedenfor

$numberOfChars = 4;

$alphabet = '1234567890';

$allChars = array();

$captchaWord = array();

$allChars = str_split($alphabet);

for($i = 0; $i < $numberOfChars; $i++){

$captchaWord[$i] = $allChars[array_rand($allChars)];

}

$xSize = 200; # picture length

$ySize = 75; # picture height

$im = imagecreate ($xSize, $ySize);

 

$white = imagecolorallocate ($im, 255, 255, 255);

$blue = imagecolorallocate ($im, 0, 0, 255);

 

$fontSize = 25;

$font = '../fonts/ArialBold.ttf';

$rotation = rand(8,15);

$numberOfChars = count($captchaWord);

 

for($i = 0; $i < $numberOfChars; $i++){

$x = $i * $xSize/($numberOfChars+1)*1.1 + $xSize/$numberOfChars/3;

$y = rand(1,4)*$ySize/10 + $fontSize;

imagettftext($im, $fontSize, $rotation, $x, $y, $blue, $font, $captchaWord[$i]);

$rotation = $rotation * -1 * rand(1,3)/2;

}

 

$numberOfLinesToBeCreated = $numberOfChars * 3;

for($i = 0; $i < $numberOfLinesToBeCreated; $i++){

imageline($im, rand(0,$xSize), rand(0,$ySize), rand(0,$xSize), rand(0,$ySize), $blue);

}

for($x = 0; $x < $xSize; $x++){

for($y = 0; $y < $ySize; $y++){

if(rand(0,1000) < 100) imagesetpixel($im, $x, $y, $blue);

if(rand(0,1000) > 900) imagesetpixel($im, $x, $y, $white);

}

}

header('Content-type: image/png');

imagepng($im);

imagedestroy($im);

Dette er bare klippet fra noe kode jeg hadde og ikke testet.... men gåten tatt i betraktning så er det sikkert noe annet Dabear er ute etter.....

Lenke til kommentar

Hmm, noe sånt?

Klikk for å se/fjerne innholdet nedenfor
<?php

error_reporting(E_ALL);

function print_exif_comment_array($file)
{
   if (!is_readable($file))
       return;
   if (!$e = exif_read_data($file))
       return;
   foreach($e['COMMENT'] as $v)
       echo $v;
}

print_exif_comment_array("Challenge3.jpeg")

?>

Pepsi!

Lenke til kommentar
Gjest Slettet+142

ja nå må vel dabear inn i tankeboksen igjen. virket jo ikke akkurat feil det du har gjort. så lenge du har svart på spørsmålet koden din kom fram til? :p

 

skjønner bare ikke hvordan du klarte å løse denne jeg.. tanken slo meg ikke enda jeg var innom exif-manualen på php.net :dontgetit:

Lenke til kommentar

Ok, forstår jeg det rett at det ligger Exif informasjon i bildet med et felt som heter Comment med verdi == Cola ?

 

Hvis dette stemmer, hvordan program kan man bruke for å se denne informasjonen? Har testet et par tre bildebehandlingsprogrammer nå, og ingen av disse har klart å finne exif informasjon

 

Edit: Nevermind, fant endelig ett program som klarte å lese ut exif informasjonen ...

Endret av tZar
Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...