此脚本会将PDF拆分为单个页面并保存。如果我点击一个图像,它会改变css类并变成黑白色。
现在我的问题是要了解哪些页面有多少。
了解它的最佳方法是什么? TK
<?php
$pdf='aaa.pdf';
$image = new Imagick();
$image->pingImage($pdf);
$x = $image->getNumberImages();
echo "
<!DOCTYPE html>
<html>
<head>
</head>
<script>
function change_autorefreshdiv(id){
var NAME = document.getElementById(id)
var currentClass = NAME.className;
if(currentClass == 'bn'){
NAME.className = 'colore';
} else {
NAME.className = 'bn';
}
}
</script>
<style type='text/css'>
.bn{
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
}
body {
background: #000;
}
img {padding:5px;}
</style>
<body>";
for ($i=0; $i <= $x; ++$i){
$im = new Imagick();
$im->setResolution(20, 20);
$im->readImage(''.$pdf.'['.$i.']');
$im->setImageFormat('jpeg');
$im->setImageCompression(imagick::COMPRESSION_JPEG);
$im->setImageCompressionQuality(100);
$jpegpath = 'jpeg/'.$pdf.'['.$i.'].jpeg';
$im->writeImage($jpegpath);
echo "
<img width='170px' height='220px'
src='$jpegpath' id='$i' class='colore'
onclick='change_autorefreshdiv($i)'></img>";
}
echo "
</body>";
&#13;
答案 0 :(得分:0)
PHP在服务器上运行,将结果(其输出)向下发送到浏览器,然后 停止运行 ,已经完成了。
浏览器接收输出,然后呈现HTML并运行javascript。此时PHP代码不在游戏中。
对于PHP(服务器,真的)知道浏览器必须告诉它,将这些事实发送回服务器。
这可以通过表单提交或ajax帖子来完成; ajax可以在结束时通知服务器,或者连续地作为每个&#34;页面&#34;选中(单击)并取消选中。
无论是表单提交还是ajax,这可能是POST
到您的服务器,例如http://yourserver.com/yourapplication/process_selections.php
- 或者可以使用相同的.php文件来发送它。
需要了解的重要一点是这与您在问题中发布的PHP代码完全分开。 该代码已完成运行。即使您回发到同一个PHP文件,也就是新调用,因此您之前设置的所有变量都不会被使用。
您必须决定将信息发送回服务器的策略,一旦您有可能会有更多问题,请稍后再询问这些问题;该主题过于宽泛,无法覆盖此问题的答案。
提示:在浏览器中,您可能希望使用javascript选择.bn
和/或.colore
类的所有项目,并将有关这些项目的信息发送回服务器。