찾다
백엔드 개발PHP 튜토리얼PHP image_php 스킬의 바이너리 변환 구현 방법

이 기사의 예에서는 PHP 이미지의 바이너리 변환 구현 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 구현 방법은 다음과 같습니다.

여기서 파일을 업로드할 때 업로드한 파일을 바이너리로 변환한 후 데이터 필드에 저장하면 다음에 읽을 때도 같은 방식으로 표시할 수 있습니다.

html 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.


이미지를 데이터베이스에 저장합니다. 코드는 다음과 같습니다.


코드 복사 코드는 다음과 같습니다. //업로드된 이미지는 임시파일로 저장되므로
//전달된 이미지를 얻으려면 파일만 읽어야 합니다
$fp = fopen($_FILES["myFile"]["tmp_name"],"rb")
$buf = addlashes(fread($fp,$_FILES["myFile"]["size"]))
//PDO 객체 생성
$dbh = 새 PDO("mysql:host=localhost;port=
3306;dbname=테스트", "루트", "123456″)
//삽입 연산을 수행하고 결과를 변수에 저장합니다
$result = $dbh->query("img(이미지) 값('$buf')에 삽입")
//영향을 받은 행 수를 가져옵니다
if ($result->rowCount() >0) {
echo("데이터가 삽입되었습니다.")
} 다른 {
echo("삽입 작업을 수행할 수 없습니다."); }
//PDO 연결을 명시적으로 종료합니다
$dbh = NULL
?>


이미지 show.php 표시
, 코드는 다음과 같습니다.


코드 복사 $query="img에서 * 선택 Id=".$_GET['id']
$result=mysql_query($query);
$num=mysql_num_rows($result)
$data = mysql_result($result,0,"images")
header("콘텐츠 유형: 이미지/" . $num['imgType'])
에코 $데이터
?>

또는 코드는 다음과 같습니다.


코드 복사
코드는 다음과 같습니다.PHP image_php 스킬의 바이너리 변환 구현 방법

"r "파일 열기 모드는 읽기 및 쓰기가 가능하며 파일 포인터는 시작 부분을 가리킵니다.

"w"는 쓰기 위해 파일을 열고 파일 포인터가 시작 부분을 가리키며 원본 파일의 길이를 0으로 설정합니다. 파일이 없으면 새 파일을 만듭니다.

"w "파일 모드는 읽기 및 쓰기용으로 열려 있고 파일 포인터는 시작 부분을 가리키며 원본 파일의 길이는 0으로 설정됩니다. 파일이 없으면 새 파일을 만듭니다.

"a"파일 열기 모드는 쓰기 중이며 파일 포인터는 파일의 끝을 가리킵니다. 파일이 없으면 새 파일을 만듭니다.

"a "파일 열기 모드는 읽기 및 쓰기가 가능하며 파일 포인터는 파일의 끝을 가리킵니다. 파일이 없으면 새 파일을 만듭니다.

"b"운영 체제의 텍스트 파일과 바이너리 파일이 다른 경우 이 매개변수를 사용할 수 있습니다. UNIX 시스템에서는 이 매개변수를 사용할 필요가 없습니다.

2. 슬래시 기능 추가

Addslashes 함수는 문자열에 슬래시를 추가하는 데 사용됩니다. 참고: 테스트할 때 이 함수를 제거했는데 그 이유는 직접 시도해 보면 알 수 있습니다.

문자열 추가(string str);

데이터베이스 쿼리가 원활하게 수행될 수 있도록 데이터베이스에서 처리해야 하는 문자열의 따옴표에 슬래시를 추가하는 기능입니다. 변경되는 문자에는 작은따옴표(')와 큰따옴표(")가 포함됩니다. ), 백슬래시() 및 널 문자 NULL(널 바이트).

3. fread 기능

fread 함수는 지정된 길이의 바이트 그룹이나 파일 EOF의 끝까지 읽는 데 사용됩니다.

문자열 fread(int fp, int length); 바이너리 파일에 안전함

fread()는 파일 포인터 파일에서 최대 length 바이트를 읽습니다. 이 함수는 EOF에 도달하거나 (네트워크 스트림의 경우) 패킷을 사용할 수 있을 때 또는 파일 읽기가 중지됩니다. 8192바이트를 읽었을 때(사용자 공간 스트림을 연 후) 어떤 조건이 먼저 발생하든지

바이너리를 이미지로 변환

참고: $newFilePath는 생성된 이미지 이름과 경로를 처리합니다. 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
$newFilePath='1.jpg';
$data = $GLOBALS[HTTP_RAW_POST_DATA];//게시된 바이너리 원시 데이터 가져오기
if(비어 있음($data)){
$data=file_get_contents("php://input");
}
$newFile = fopen($newFilePath,"w");//파일을 열고 쓰기 준비
fwrite($newFile,$data);//파일에 바이너리 스트림 쓰기
fclose($newFile);//파일 닫기

읽은 바이너리 스트림을 데이터베이스에 저장하거나, 바이너리 헤더 파일을 얻기 위해 직접 그림에 쓸 수 있으며, 해당 파일이 어떤 유형에 속하는지 알 수 있습니다.
코드 복사 코드는 다음과 같습니다.
$bin = substr($content,0,2);
$strInfo = @unpack("C2chars", $bin)
$typeCode = intval($strInfo['chars1'].$strInfo['chars2'])
$fileType = '';
스위치($typeCode)
{
사례 7790:
$fileType = 'exe'
휴식
사례 7784:
$fileType = '미디'
휴식
사례 8297:
$fileType = 'rar'
휴식
사례 255216:
$fileType = 'jpg'
휴식
사례 7173:
$fileType = 'gif'
휴식
사례 6677:
$fileType = 'bmp'
휴식
사례 13780:
$fileType = 'png'
; 휴식
기본값:
에코 '알 수 없음'; }
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전