こんにちは、クライアントがボタン「sceencapture」をクリックしたときに現在の Web ページのスクリーンショットが必要であるという要件があります。
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
ここのphp.netリンクのマニュアルには 、次 の注意事項があります:この機能はWindowsでのみ使用できます。助けてください ..
こんにちは、クライアントがボタン「sceencapture」をクリックしたときに現在の Web ページのスクリーンショットが必要であるという要件があります。
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
ここのphp.netリンクのマニュアルには 、次 の注意事項があります:この機能はWindowsでのみ使用できます。助けてください ..
PHP はサーバー上で実行され、定義上スクリーンショットはクライアント上で実行する必要があるため、これは PHP を使用して行うことはできません。html2canvasライブラリなどのクライアント側テクノロジを使用して、クライアント側でスクリーンショットを撮ることができます。必要に応じて、スクリーンショットをサーバー側の PHP コードに送信できます。
@Erix Schierboom は質問に答えましたが、コードを共有したいと思いました。
これは一人ではできませんphp
。javascript
スクリーンショットを撮って に変換し、string
に送信してajax
コンテンツphp script
を保存する必要があります。
これを行うには、このライブラリhttp://html2canvas.hertzen.com/を使用できます。次の数行のコードで魔法が起こります。
// an example html page
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script type="text/javascript" src="./javascripts/html2canvas.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#screenshot').on('click', function(e){
e.preventDefault();
html2canvas($('body'), {
onrendered: function(canvas){
var imgString = canvas.toDataURL();
window.open(imgString);
$.ajax({
url: '',
type: 'POST',
data: {
file: imgString
},
success: function(response){
//alert('Everything works fine.');
},
error: function(response){
//alert('Server response error.');
}
});
}
});
});
});
</script>
</head>
<body>
<div style="width: 800px; margin: auto;">
<input type="button" id="screenshot" value="Screenshot!"/>
<div style="height: 100px;border: 1px solid #D8D8D8;">
Big header!
</div>
<div style="height: 500px;border: 1px solid #D8D8D8;">
Medium Content
</div>
</div>
</body>
</html>
// Your php side script
<?php
if($_POST['file'] != "") {
header('Content-Type: application/json');
$file = base64_decode(str_replace('data:image/png;base64,','',$_POST['file']));
$im = imageCreateFromString($file);
if($im){
$save = imagepng($im, '/path/to/the/new/file.png');
echo json_encode(array('file' => true));
}
else {
echo json_encode(array('error' => 'Could not parse image string.'));
}
exit();
}
?>
IE 7 および 8 のサポートに関する限り、Google (および他の巨大な Web サイト) は、最新バージョンから 1 つ前のバージョンまでサポートすると述べています。そのため、現在のバージョンが 10 の場合、9 と 10 のみがサポートされます。これは良い方法だと思い、クライアントでも使用しています。IE < 8 は、... 高度な Web ページを開発している場合に使用するのは非常に苦痛です。クライアントがまだ IE 7 と 8 のサポートを主張している場合は、Modernizrとhtml5shivをチェックアウトすると、html5 のサポートを IE に導入するのに役立つ可能性があります。