2016-10-07 6 views
1

나는 QR 코드를 생성하기 위해이 코드를 사용하여 표시 필요 ,하지만 로드 "dompdf" (PHP PDF 생성기)에로드합니다. dompdf에 "$ aux"변수 ("< img src = '$ aux'/>")를 줄 수 없다는 것을 알았습니다. 변수는 올바른 문자열을 반환하지만 dompdf는이를 표시 할 수 없습니다 (아마 PHP 파일이기 때문일 수 있습니다). 나는 file_get_contents를 만들었지 만, 놀랍게도 빈 파일을 반환했습니다.컬 또는 file_get_contents 전체 URL 경로

내가 사용 : 나는 전체 URL 경로를 입력 할 때

, 그것은 '복사'... 때문에

file_put_contents('tempqr.png', file_get_contents($qrc)); 

그것은, 하지 인해 잘못된 권한에있는 파일을 성공적으로 (http://localhost:2180/work/qr_img0.50j/php/qr_img.php?..).하지만 시간이 지남에 따라 변할 수있는 포트와 물건 때문에 신뢰할 수있는 솔루션이 아닌 것 같습니다. 나는 cURL을 설치했는데 동일한 문제가 계속 발생합니다. 전체 URL 경로와 함께 표시됩니다. 나는 이미지를 버퍼로 읽어 들이기 위해 fopen을 시도했지만, 버퍼는 공백으로 남았다.

어쩌면 누구나 저 (그리고 다른 독자), 파일을로드하는 두 가지 기능을 (어쩌면 전체 http 신뢰할 수없는 일없이?) 도울 수 있습니다.

아니면 내가 모르는 PHP를 호출하지 않고 "qr_img0.50j"에서 이미지를 생성하는 또 다른 방법이 ... (0.6.1 기준)

답변

0

DOMPDF 더 이상 문서에 PHP 구문 분석하지 않습니다. 문서를 Dompdf로 전달하기 전에이 작업을 수행해야합니다. 아마도 가장 쉬운 방법은 이미지를 렌더링하여 문서에 data-uri로 삽입하는 것입니다.

QR generator가 명령 줄 실행 용으로 설계되지 않은 경우이 흐름에서 작동하도록 수정해야 할 수도 있습니다. 이상적으로 그것은 호출 가능한 함수 일 것입니다. 이것은 샘플을 위해 가정 한 것입니다. DOMPDF의 0.7.x와

는 :

<?php 
// require dompdf autoloader, then ... 

using Dompdf\Dompdf; 

$image = qr_img('Text', 'H', '4', 'P'); // assumine PNG output 
$html = '<img width="250" src="data:image/png;base64,' . base64_encode($image) . '" />'; 

$dompdf = new Dompdf(); 
$dompdf->load_html($html); 
$dompdf->render(); 
$dompdf->stream(); 
?> 

FYI은 동일한 문제에 적용 file_get_contents. 그것은 파일의 PHP를 구문 분석하지 않습니다. 파일 자체를 가져 오는 데만 사용할 수 있습니다.

파일을 가져 오는 데 사용하는 특정 방법에 관계없이 결과는 원본에 따라 다릅니다. 로컬 파일 시스템에서 검색된 파일은 이 아니며의 PHP는 구문 분석됩니다. 웹 서버를 통해 검색된 파일은

+0

주셔서 감사 합니다만,이 명령으로 PHP를 구문 분석하지 않는다면 (자), 전체 URL로 작업 한 _why_'file_get_contents'를 설명 할 수 있습니까? – Fusseldieb

+0

전체 URL을 입력하면 실제로 웹 서버에서 파일을 검색합니다. 웹 서버 *는 파일을 보내기 전에 PHP를 구문 분석하여 이미지를 얻습니다. 로컬 파일 시스템에서 파일을 가져 오면 파일은 파싱되지 않으므로 파싱 된 결과가 아닌 PHP 소스를 얻게됩니다. – BrianS

+0

그건 의미가 있습니다 ...하지만 당신이'qr_img ('텍스트', 'H', '4', 'P'); – Fusseldieb