Hi, Wednesday, December 4, 2002, 3:12:41 PM, you wrote: JTJ> Tom, JTJ> Anyone,
JTJ> No I'm not looking for a ", I'm trying to pass double quotes into MySQL.
JTJ> Like I said, it works when debugging:
here is a function to clean up your search string, a bit long winded but it
should work :)
function clean_search_string($s){
$s = stripslashes($s);
$state = 'S';
$len = strlen($s);
$out = '';
$list = array();
for($i=0;$i<$len;$i++){
switch($state){
case 'S':
switch($s[$i]){
case ' ':
break;
case '"':
$state = 'Q';
break;
case "'":
$state = 'q';
break;
default:
$state = 'W';
$out .= $s[$i];
break;
}
break;
case 'W':
switch($s[$i]){
case ' ':
$state = 'S';
$out = addslashes($out);
$list[] = $out;
$out = '';
break;
default:
$out .= $s[$i];
break;
}
break;
case 'Q':
switch($s[$i]){
case '"':
$state = 'S';
$out = '"'.addslashes($out).'"';
$list[] = $out;
$out = '';
break;
default:
$out .= $s[$i];
break;
}
break;
case 'q':
switch($s[$i]){
case "'":
$state = 'S';
$out = '"'.addslashes($out).'"';
$list[] = $out;
$out = '';
break;
default:
$out .= $s[$i];
break;
}
break;
}
}
if(!empty($out)) $list[] = addslashes($out);;
$r = '';
$x = 0;
while(list($key,$val)=each($list)){
$r .= $val.' ';
}
return $r;
}
//simulate input
$test = addslashes(' +test "hello maria" fish '."-O'Brian 'big \" test'");
$list = clean_search_string($test);
echo $list.'<br>';
--
regards,
Tom
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

