PHP 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:
<?php
$img1 = file_get_contents("test3.dib");
$img2 = file_get_contents("test4.dib");
if($img1 == $img2)
{
echo("Gelijk!<br>\n");
}
else
{
echo("Niet gelijk!<br>\n");
}
$len1 = strlen($img1);
$len2 = strlen($img2);
if($len1 === $len2)
{
echo("Gelijk!<br>\n");
}
else
{
echo("Niet gelijk!<br>\n");
}
$var1 = array();
for($i = 0; $i < $img1; $i++)
{
if($img1[$i] === $img2[$i])
{
$var1[] = $img1[$i];
}
else
{
exit();
}
}
$img1a = substr($img1, strlen($img1), 0 - count($var1));
$img2a = substr($img2, strlen($img2), 0 - count($var1));
echo($img1a.": ".strlen($img1a)."<br>\n".$img2a.": ".strlen($img2a)."<br>\n");
$var2 = array();
for($i = 0; $i < $img1; $i++)
{
if($img1[$i] === $img2[$i])
{
$var2[] = $img2[$i];
}
else
{
exit();
}
}
$img1b = substr($img1, strlen($img1), 0 - count($var2));
$img2b = substr($img2, strlen($img2), 0 - count($var2));
echo($img1b.": ".strlen($img1b)."<br>\n".$img2b.": ".strlen($img2b)."<br>\n");
?>
<?php if($img1 == $img2) { } else { echo("Niet gelijk!<br>\n"); } if($len1 === $len2) { } else { echo("Niet gelijk!<br>\n"); } for($i = 0; $i < $img1; $i++) { if($img1[$i] === $img2[$i]) { $var1[] = $img1[$i]; } else { } } for($i = 0; $i < $img1; $i++) { if($img1[$i] === $img2[$i]) { $var2[] = $img2[$i]; } else { } } ?>
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
|