2016-12-27 1 views
1

, оказывается, я схожу с ума, не зная, как решить эту проблему. Я проверил несколько функций проверки base64, чтобы определить, является ли строка 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); 

В результате неопределенными, я не знаю, почему.

Возможно, ответ слишком очевиден, но я часами вращался, не зная, почему проверка не окажется ложной. может ли кто-нибудь дать мне руку?


EDIT:

Похоже, что функция работает нормально, но я путает себя с проверкой. Проблема в том, что он не обнаруживает, что строка является образ base64 и возвращает false.

То есть, маршрут обнаруживает его как ложное, а также определяет его как ложное, если он проходит строку файла base64.

Я не понимаю, почему проверка не пройдена, должно работать, base64 имеет такую ​​структуру:

$path='data:image/jpeg;base64,/9j/4AAQSkZJRgAB... 

Base64 был создан с использованием холст в JavaScript.

Почему бы вам не признать его base64?

Я сделал немного выдумки, чтобы уйти с дороги, надеюсь, кто-то может дать мне руку.

if(substr($image, 0,11) === 'data:image/'){  

     $imageWidth = getimagesize($image); 


    $image1->base64_to_file($image, $DestJPG); 

} 

Очень распущенный решение ...

ответ

1

Неопределенное не PHP терминологии. Где именно вы это получили?

Вы должны попробовать:

var_dump(itsBase64($path)); 

Чтобы увидеть точное значение, которое вы получили обратно из функции.

+0

Извините, я забыл упомянуть, что неопределенная ставит его в отчете – PlayerWet

+0

ошибок РНР Результат является ложным, но странно то, что я изменить путь для base64 и все еще дает мне ложь, разве это не странно? – PlayerWet

+0

My base64 создается с использованием Javascript canvas с этим типом структуры: данные: image/jpeg; base64,/9j/4AAQSkZJRgABAQAAAQABAAD .... – PlayerWet

1

Попробуйте этот путь,

$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 
+0

Извините, я не видел ваших сообщений. Оказывается, в действительности результат этой функции всегда ложный, хотя переменная path является базой64. Я не знаю, проблема в том, чтобы быть base64 jpg, сгенерированным с помощью javascript canvas, можете ли вы дать ошибку по этой причине? – PlayerWet