SQLの窓

2013年12月05日


任意のサイトのソースコードを表示させる PHP

cURL 関数であらかじめ Content-Type を取得しておいて、表示可能ならば charset を引き継いで、text/plain で表示します。

※ 実際、ブラウザで表示するものとは違う可能性はあります

<?php
$ch = curl_init($_GET['url']);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// *********************************************************
// https 用
// *********************************************************
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);

$data = curl_exec($ch);
curl_close($ch);
if ($data === false) {
	echo 'cURL failed';
	exit;
}

$contentType = 'unknown';
if (preg_match('/(Content-Type: .+)/i', $data, $matches1)) {
	$contentType = $matches1[1];
}

$charset = 'utf-8';
if (preg_match('/(charset.+)/i', $data, $matches2)) {
	$charset = $matches2[1];
}

$target = false;
if ( false !== stripos( $contentType, "text" ) ) {
	$target = true;
}
if ( false !== stripos( $contentType, "javascript" ) ) {
	$target = true;
}
if ( false !== stripos( $contentType, "css" ) ) {
	$target = true;
}

if ( !$target ) {
	exit("Can't display");
}

header( "Content-Type: text/plain; charset={$charset}" );
header( "pragma: no-cache" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
header( "Cache-control: no-cache" );

print file_get_contents($_GET['url']);

?>

関連する記事

PHP : WEBでもコマンドラインでもHTTPでファイルをダウンロードする




【PHP + 通信の最新記事】
posted by lightbox at 2013-12-05 18:20 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり