verglijking met utf8_decode werkt niet...
Ik heb dus het volgende script gemaakt, alleen werkt hij niet als ik unicode characters invoer, terwijl hij die wel goed omzet.
Je zou de volgende code eventueel kunnen copy/pasten om het zelf ook te zien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<form action="test.php" method="post">
<input type="submit" name="Submit" value="Submit" />
<input type="text" name="textfield" />
</form>
<?php
$arrStr[] = "blaat";
$arrStr[] = "moo";
$arrStr[] = "lal";
$arrStr[] = "lolz";
$count = count($arrStr);
for($i=0; $i<=$count; $i++)
{
CheckStr ( $arrStr[$i] );
}
function CheckStr ( $str )
{
foreach ( $_POST as $id => $value )
{
$tmp1 = utf8_decode ( $value );
$strConverted = $tmp1;
echo $strConverted." => lal<br>";
switch(TRUE)
{
case stristr ( $strConverted, "lal" ) == TRUE:
die( "<br>Gevonden!" );
break;
}
}
}
?>
<input type="submit" name="Submit" value="Submit" />
<input type="text" name="textfield" />
</form>
<?php
$arrStr[] = "blaat";
$arrStr[] = "moo";
$arrStr[] = "lal";
$arrStr[] = "lolz";
$count = count($arrStr);
for($i=0; $i<=$count; $i++)
{
CheckStr ( $arrStr[$i] );
}
function CheckStr ( $str )
{
foreach ( $_POST as $id => $value )
{
$tmp1 = utf8_decode ( $value );
$strConverted = $tmp1;
echo $strConverted." => lal<br>";
switch(TRUE)
{
case stristr ( $strConverted, "lal" ) == TRUE:
die( "<br>Gevonden!" );
break;
}
}
}
?>
Als ik bijvoorbeeld gewoon de tekst "lal" invoer, geeft hij de melding "Gevonden!". Dat is dan goed, ik krijg dan ook als output dit te zien:
lal => lal
Gevonden!
Voer ik unicode waarde in, dan zet hij dit wel om naar normale tekst, alleen lijkt hij het toch niet te herkennen op de een of andere manier...
Dit is de unicode waarde wat omgezet ook "lal" betekend:
lal
Dan krijg ik dit als ouput, zoals je ziet verglijkt hij ze wel, en zou hij eigenlijk allang gestopt moeten hebben, maar hij ziet het niet en gaat gewoon door...
Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal
Submit => lal
lal => lal
Ik snap het echt niet waarom het niet lukt, hopelijk ziet iemand hier wat ik verkeerd heb gedaan...
Als ik bijvoorbeeld dit heb:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
$str1 = "lal";
$str2 = "lal";
$tmp = utf8_decode($str1);
echo $tmp." => ".$str2."<BR>";
if(stristr( $tmp, $str2) == TRUE)
{
echo "Gevonden!";
}
?>
$str1 = "lal";
$str2 = "lal";
$tmp = utf8_decode($str1);
echo $tmp." => ".$str2."<BR>";
if(stristr( $tmp, $str2) == TRUE)
{
echo "Gevonden!";
}
?>
Dan weergeeft hij wel de text, maar als je in de html broncode kijkt, zie je gewoon nog de string "lal" staan. Clonclusie, hij veranderd dus niet die soort unicode, wat ik dus wel wil doen. Iemand nog ideeen..?