主な理由page is changing into gray colors
は、ブラウザーがコンテンツ タイプを正しく検出できないことです。
これを試して:
header("Content-type: $mimetype");
header('Content-Disposition: inline; filename="'.$question.'"'); // Filename should be there, not the content
それ以外の :
header('Content-type: $mimetype');
header('Content-Disposition: inline; filename="$question"');
引用符が無効なようで、コンテンツ タイプが正しく指定されていません。
編集
$question
明確にするために、それがバイナリ PDF コンテンツであると仮定しましょう。
それはあなたのコードがどうあるべきかです:
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename=anything.pdf');
header('Content-Transfer-Encoding: binary');
echo $question;
エラーの説明
元のコードとエラーについて話し合いましょう。
$mimetype = 'application/pdf';
$disposition = 'attachment';
// First error: you have single quotes here. So output is 'Content-type: $mimetype' instead of the 'Content-type: application/pdf'
header('Content-type: $mimetype');
// Second error. Quotes again. Additionally, $question is CONTENT of your PDF, why is it here?
header('Content-Disposition: inline; filename="$question"');
header('Content-Transfer-Encoding: binary');
// Also bad: strlen() for binary content? What for?
header('Content-length: ' . strlen($question));
header('Accept-Ranges: bytes');
echo "$question";
もう1つの編集
別のクエリがあります... ファイル名を $year.pdf に変更したい..$ year には 2007 のような値が含まれている可能性があります..どうすればそれを行うことができますか?
これを試して :
$year = '2013'; // Assign value
header('Content-Disposition: inline; filename='.$year.'.pdf');
それ以外の:
header('Content-Disposition: inline; filename=anything.pdf');