Bueno, ya que estoy solo destacar que no es un método nuevo ya que el mismo método se peude utilizar para las cadenas JavaScript que no queremos que provoquen problemas, y de paso pongo una implementación más eficiente:
Código PHP
<?php
//Para codificar a binario en JavaScript:
function JSEncoding($s){
$_lo=array(0=>'0',1=>'1',2=>'2',3=>'3',4=>'4',5=>'5',6=>'6',7=>'7',8=>'8',9=>'9',10=>'A',11=>'B',12=>'C',13=>'D',14=>'E',15=>'F');
$_hi=array(0=>'0',16=>'1',32=>'2',48=>'3',64=>'4',80=>'5',96=>'6',112=>'7',128=>'8', 144=>'9', 160=>'A', 176=>'B', 192=>'C', 208=>'D', 224=>'E', 240=>'F' );
$s=(string) $s;
$len=strlen($s);
$res='';
for($i=0;$i<$len;++$i){
$c=ord($s[$i]);
$res.='\\x'.$_hi[$c&240].$_lo[$c&15];
}
return $res;
}
//Para codificar a binario en SQL
function safe($s){
$_lo=array(0=>'0',1=>'1',2=>'2',3=>'3',4=>'4',5=>'5',6=>'6',7=>'7',8=>'8',9=>'9',10=>'A',11=>'B',12=>'C',13=>'D',14=>'E',15=>'F');
$_hi=array(0=>'0',16=>'1',32=>'2',48=>'3',64=>'4',80=>'5',96=>'6',112=>'7',128=>'8', 144=>'9', 160=>'A', 176=>'B', 192=>'C', 208=>'D', 224=>'E', 240=>'F' );
$s=(string) $s;
$len=strlen($s);
$res='';
for($i=0;$i<$len;++$i){
$c=ord($s[$i]);
$res.=$_hi[$c&240].$_lo[$c&15];
}
return 'UNHEX(\''.$res.'\')';
}
?>
http://krowork.blogspot.com