检测字符串是base64还是目录
To detect whether string is base64 or directory
原来我快疯了,不知道怎么解决这个问题。我已经测试了几个 base64 验证函数来检测字符串是 base64 还是文件路径。
$path='/img/2015/desert-and-34.jpg';
function itsBase64($data){
if ( base64_encode(base64_decode($data)) === $data){
return true;
} else {
return false;
}
}
itsBase64($path);
结果是undefined,不知道为什么。
也许答案太明显了,但我一直在旋转几个小时,不知道为什么验证没有变成错误的。谁能帮帮我?
编辑:
看起来函数运行良好,但我对验证感到困惑。问题是它没有检测到该字符串是 base64 图像并且 returns false.
即路由检测为false,传递base64文件字符串也检测为false
我不明白为什么验证失败,应该可以,base64 有这样的结构:
$path='data:image/jpeg;base64,/9j/4AAQSkZJRgAB...
Base64 已使用 canvas 在 javascript 中生成。
为什么不识别为base64?
我做了一些软糖来摆脱困境,希望有人能帮助我。
if(substr($image, 0,11) === 'data:image/'){
$imageWidth = getimagesize($image);
$image1->base64_to_file($image, $DestJPG);
}
一个非常不酷的解决方案...
未定义 不是 php 术语。你到底从哪里得到这个的?
你应该试试:
var_dump( itsBase64($path) );
查看您从函数返回的确切值。
试试这个方法,
$path='/img/2015/desert-and-34.jpg';
function itsBase64($data){
if ( base64_encode(base64_decode($data)) === $data){
return 1;
} else {
return 0;
}
}
echo itsBase64($path); // Output is 0
原来我快疯了,不知道怎么解决这个问题。我已经测试了几个 base64 验证函数来检测字符串是 base64 还是文件路径。
$path='/img/2015/desert-and-34.jpg';
function itsBase64($data){
if ( base64_encode(base64_decode($data)) === $data){
return true;
} else {
return false;
}
}
itsBase64($path);
结果是undefined,不知道为什么。
也许答案太明显了,但我一直在旋转几个小时,不知道为什么验证没有变成错误的。谁能帮帮我?
编辑:
看起来函数运行良好,但我对验证感到困惑。问题是它没有检测到该字符串是 base64 图像并且 returns false.
即路由检测为false,传递base64文件字符串也检测为false
我不明白为什么验证失败,应该可以,base64 有这样的结构:
$path='data:image/jpeg;base64,/9j/4AAQSkZJRgAB...
Base64 已使用 canvas 在 javascript 中生成。
为什么不识别为base64?
我做了一些软糖来摆脱困境,希望有人能帮助我。
if(substr($image, 0,11) === 'data:image/'){
$imageWidth = getimagesize($image);
$image1->base64_to_file($image, $DestJPG);
}
一个非常不酷的解决方案...
未定义 不是 php 术语。你到底从哪里得到这个的?
你应该试试:
var_dump( itsBase64($path) );
查看您从函数返回的确切值。
试试这个方法,
$path='/img/2015/desert-and-34.jpg';
function itsBase64($data){
if ( base64_encode(base64_decode($data)) === $data){
return 1;
} else {
return 0;
}
}
echo itsBase64($path); // Output is 0