login  Naam:   Wachtwoord: 
Registreer je!
 Forum

.dib-figuren

Offline MothZone - 05/07/2005 16:58 (laatste wijziging 05/07/2005 22:44)
Avatar van MothZonePHP ver gevorderde Hallo,
Ik was voor de fun ff wat figuren met elkaar aan het vergelijken in php, en heb juist iets vreemd ontdekt.
Ik heb 2 figuren aangemaakt, test3.dib en test4.dib
test3.dib : 1px x 1 px zwart
test4.dib : 2px x 1 px ook helemaal zwart

Dit is mijn php-code:
  1. <?php
  2. $img1 = file_get_contents("test3.dib");
  3. $img2 = file_get_contents("test4.dib");
  4.  
  5. if($img1 == $img2)
  6. {
  7. echo("Gelijk!<br>\n");
  8. }
  9. else
  10. {
  11. echo("Niet gelijk!<br>\n");
  12. }
  13.  
  14. $len1 = strlen($img1);
  15. $len2 = strlen($img2);
  16.  
  17. if($len1 === $len2)
  18. {
  19. echo("Gelijk!<br>\n");
  20. }
  21. else
  22. {
  23. echo("Niet gelijk!<br>\n");
  24. }
  25.  
  26. $var1 = array();
  27.  
  28. for($i = 0; $i < $img1; $i++)
  29. {
  30. if($img1[$i] === $img2[$i])
  31. {
  32. $var1[] = $img1[$i];
  33. }
  34. else
  35. {
  36. exit();
  37. }
  38. }
  39.  
  40. $img1a = substr($img1, strlen($img1), 0 - count($var1));
  41. $img2a = substr($img2, strlen($img2), 0 - count($var1));
  42.  
  43. echo($img1a.": ".strlen($img1a)."<br>\n".$img2a.": ".strlen($img2a)."<br>\n");
  44.  
  45. $var2 = array();
  46.  
  47. for($i = 0; $i < $img1; $i++)
  48. {
  49. if($img1[$i] === $img2[$i])
  50. {
  51. $var2[] = $img2[$i];
  52. }
  53. else
  54. {
  55. exit();
  56. }
  57. }
  58.  
  59. $img1b = substr($img1, strlen($img1), 0 - count($var2));
  60. $img2b = substr($img2, strlen($img2), 0 - count($var2));
  61.  
  62. echo($img1b.": ".strlen($img1b)."<br>\n".$img2b.": ".strlen($img2b)."<br>\n");
  63. ?>


De output:

Citaat:
Niet gelijk!
Gelijk!
: 0
: 0
: 0
: 0


Dus ff verklaring vd output:
- Controleren of de 2 figuren gelijk zijn: Niet gelijk
- Controleren of de lengte van de 2 figuren gelijk zijn: Gelijk
De volgende 4 verwijderen dezelfde tekens op dezelfde plaats, toont daarna de resterende string vanaf het punt dat een teken niet gelijk was, en na de dubbelpunt de lengte ervan: 4x lengte 0

Snapt iemand dit???

edit op lijnen 40 en 41 (en 59 en 60) neem ik als lengte-parameter het negatieve van het aantal waardes in de arrays, zodat hij langs achter begint met substr

edit2 ik denk dat niemand het snapt, de conclusie hiervan is, is dat die 2 figuren niet gelijk zijn, php zegt dat ook, maar ze hebben dezelfde lengte (qua tekstwaarde) en ze hebben geen verschil (ook qua tekstwaarde), maar tòch zijn ze verschillend

5 antwoorden

Gesponsorde links
Offline smoos - 05/07/2005 20:43 (laatste wijziging 05/07/2005 21:35)
Avatar van smoos PHP gevorderde klinkt allemaal heel cool
maar idd ik snap er geen zak van 

edit:
  1. edit2 ik denk dat niemand het snapt,

de rede dat ik reageer is om duidelijk te maken dat ik het weldegelijk doorgelezen heb maar het niet snap. hij geeft ook aan te denken dat niemand het snapt, maar omdat hij geen reacties kreeg kon het ook voor hem lijke alsof niemand er tijd in stook.
get my point?
Offline Martijn1989 - 05/07/2005 20:53
Avatar van Martijn1989 PHP ver gevorderde reageer dan niet :S (net als) dit is dat egt een stomme post
Offline MothZone - 05/07/2005 22:35
Avatar van MothZone PHP ver gevorderde wel, ik heb wat geprobeert en dmv die code kom ik tot deze conclusie:
volgens php:

- zijn de tekstwaardes (dus als je een figuur opent in kladblok ofzo) van de 2 figuren verschillend
- zijn het aantal tekens van de tekstwaardes van de 2 figuren gelijk
- zijn er geen verschillende tekens

de 2 figuren zijn verschillend qua grootte (1x1 en 2x1), en dat is te zien in het eerste punt, maar tòch geeft het 3de punt aan dat er in de tekstwaardes geen verschil qua tekens zit, wat dus het eerste tegenspreekt:s
Offline ikkedikke - 05/07/2005 22:59
Avatar van ikkedikke PHP expert dat is best logisch als je weet hoe die plaatjes werken:
de eerste paar (stel 100) tekens zijn voor de gegevens zoals maker, en hoogte/breedte. daarna komt dus het plaatje in tekens, maar alleen de kleurverandering wordt opgeslagen:
plaatje 1
  1. 100 tekens van de header : formaat: 1X1
  2. data: kleurverandering:zwart

plaatje 2
  1. 100 tekens van de header : formaat: 1X2
  2. data: kleurverandering:zwart

in principe is het enige verschil het formaat...:!:
Offline MothZone - 05/07/2005 23:04
Avatar van MothZone PHP ver gevorderde jaja, maar de bestanden zijn niet eens 100 tekens lang, en door de laatste "test" zegt php dat er geen verschillen zijn, dusjah
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s