Παιδιά έχω ένα σοβαρό πρόβλημα ... εδώ και ώρες παρατήρησα σε κάποιο σημείο του project ότι η array_unique και in_array δεν δούλευαν σωστά.
Και έτσι παρ' όλο που είχα ίδια strings τα md5 τους είναι διαφορετικά άρα σωστά δεν δούλευαν οι από πάνω - έχετε όμως κάποια ιδέα γιατί?? Πρέπει οπωσδήποτε να τα κάνω να φαίνονται ίδια - και γενικά δεν βρήκα κάτι με τις κωδικοποιήσεις κάνοντας τα ISO-8859-1 ή UTF-8 τα md5 έμειναν τα ίδια...
Ευχαριστώ εκ των προτέρων
Code: Select all
function in_array2($array,$needle) {
foreach ( $array as $word) {
echo "~~~".$needle."~~".$word."~~~<br/>";
echo md5($needle)."~~".md5($word)."<br/>";
if (md5($needle)== md5($word)){
return true;
}
}
return false;
}
~~~[toy story 3]~~3~~~
b2735dfe58580edee086689784765eb1~~eccbc87e4b5ce2fe28308fd9f2a7baf3
~~~[toy story 3]~~[toy story 3]~~~
b2735dfe58580edee086689784765eb1~~5859e843b9a57b9e3b198a31e3f7eb5c
~~~[toy story 3]~~coupon~~~
b2735dfe58580edee086689784765eb1~~d6e16e12d31ca5eaaf18ef8c8c6a3d82
~~~[toy story 3]~~story~~~
b2735dfe58580edee086689784765eb1~~bec670e5a55424d840db8636ecc28828
~~~[toy story 3]~~toy~~~
b2735dfe58580edee086689784765eb1~~10016b6ed5a5b09be08133fa2d282636
edit:
Προσέθεσα δοκιμαστικά output - αλλά βγαίνουν όλα unequal...
Code: Select all
echo ((string)$needle===(string)$word)?"equal<br/>":"unequal<br/>";
echo (strcmp($needle,$word)===0)?"equal<br/>":"unequal<br/>";
edit 2:
Χρησιμοποιώντας την συνάρτηση που μετατρέπει ένα string σε binary
Code: Select all
function str2bin($str, $mode=0) {
$out = false;
for($a=0; $a < strlen($str); $a++) {
$dec = ord(substr($str,$a,1));
$bin = '';
for($i=7; $i>=0; $i--) {
if ( $dec >= pow(2, $i) ) {
$bin .= "1";
$dec -= pow(2, $i);
} else {
$bin .= "0";
}
}
/* Default-mode */
if ( $mode == 0 ) $out .= $bin;
/* Human-mode (easy to read) */
if ( $mode == 1 ) $out .= $bin . " ";
/* Array-mode (easy to use) */
if ( $mode == 2 ) $out[$a] = $bin;
}
return $out;
}
έκανα ανάλυση του [toy story 2] και του [toy story 2]
και έχουν διαφορετική binary μορφή στο τέλος...

- για να δούμε τί κρύβεται.. έχετε κάποια ιδέα τί είναι αυτό με το κόκκινο ?
01011011 01110100 01101111 01111001 00100000 01110011 01110100 01101111 01110010 01111001 00100000
00110010 01011101
01011011 01110100 01101111 01111001 00100000 01110011 01110100 01101111 01110010 01111001 00100000
00100000 00110010 01011101
edit 3:
Αυτά με το κόκκινο είναι η αναπαράσταση του 2 - που για κάποιο λόγο υπάρχει ένα επιπλέον κενό
edit 4:
problem solved -
Το string περιείχε δύο κενά αλλά όταν γίνονται output είναι ένα αφού η html αγνοεί τα παραπάνω από ένα κενά