Здравствуйте, здесь это маленький код для преобразования строки в шестнадцатеричный и наоборот.
С этим мы не ошибка строку в шестнадцатеричную:
<?php
if(isset($_POST['upload'])) // si formulaire soumis
{
$content_dir = 'tmpcipher/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if(!is_uploaded_file($tmp_file))
{
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if(!move_uploaded_file($tmp_file, $content_dir . $name_file))
{
}
$name_file2 = $_FILES['fichier']['name'];
$hex = bin2hex(file_get_contents($content_dir . $name_file2));
unlink($content_dir . $name_file2);
$myfile2 = fopen($content_dir . $name_file2 . "2" , "w");
$myfileurl = $content_dir . $name_file2 . "2";
fwrite($myfile2, $str);
fclose($myfile2);
$myfile3 = $content_dir . $name_file2 . "2";
if (file_exists($myfile3)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($myfile3));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($myfile3));
readfile($myfile3);
}
}
?>
Reverse, с этим у нас есть ошибка:
<?php
if(isset($_POST['upload'])) // si formulaire soumis
{
$content_dir = 'tmpcipher/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if(!is_uploaded_file($tmp_file))
{
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if(!move_uploaded_file($tmp_file, $content_dir . $name_file))
{
}
$str0 = file_get_contents($content_dir . $name_file); //HEXADECIMAL CONTENT
$hexstr1 = hex2bin("73616c7574"); //WORK
$hexstr2 = hex2bin($str0); //ERROR
$name_file = substr($name_file,0,-1);
$myfile2 = fopen($content_dir . $name_file, "w");
fwrite($myfile2, $str0);
fclose($myfile2);
$filectohex = file_get_contents($content_dir . $name_file);
$myfile3 = $content_dir . $name_file;
if (file_exists($myfile3)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($myfile3));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($myfile3));
readfile($myfile3);
}
}
?>
php_error_log: [25-Jan-2015 00:34: 25 Европа/Берлин] PHP Предупреждение: hex2bin(): строка ввода должна быть шестнадцатеричной строкой в C: \ xampp \ htdocs \ dec.php в строке 47
Когда я беру содержимое строки $ str0, и я делаю hex2bin с , оно работает. я не знаю, если учесть, что PHP мой вар является целым числом, пожалуйста, дайте мне решение :)
спасибо: D
[решено]: Написать переменную, которую вы хотите преобразовать в ASCII (шестнадцатеричное содержание , а затем преобразовать в ASCII содержимого этого файла (должно быть шестнадцатеричными).
$hex2bin($str0); --->
$myfile2 = fopen($content_dir . $name_file, "w");
fwrite($myfile2, $str0);
fclose($myfile2);
$myfile2path = $content_dir . $name_file;
$bin = hex2bin(file_get_contents($myfile2path));
NOP, вы не понять, $ str0 - это содержимое файла, этот файл представляет собой шестнадцатеричное содержимое (по bin2hex), ошибка находится на: hex2bin ($ str0), когда я пишу в выходной файл $ str0 У меня есть содержимое моего ввода file, Когда я пишу в своем исходном файле hex2bin ($ str0), поэтому $ hexstr2 (ошибка на php_error_log), у меня есть пробельный символ. – dudeitscrypto
Я не говорил о '$ str0', я говорил о' $ str', которая является другой переменной в вашем первом фрагменте кода. –
Ohoh Я понимаю, что вы имеете в виду, но я вырезал короткую часть кода, определяемую им $ str, нет проблем с первой частью кода, я решил свою проблему, написав $ str0 в файле (шестнадцатеричное содержимое) и then hex2bin (file_get_content (filecontains $ str0)); $ myfile2 = fopen ($ content_dir. $ name_file, "w"); \t fwrite ($ myfile2, $ str0); \t fclose ($ myfile2); \t $ myfile2path = $ content_dir. $ Name_file; \t $ bin = hex2bin (file_get_contents ($ myfile2path)); \t $ myfile4 = fopen ($ content_dir. $ Name_file. "T", "w"); \t $ myfile4path = $ content_dir. $ name_file. «Т»; \t fwrite ($ myfile4, $ bin); \t fclose ($ myfile4); – dudeitscrypto