php实现即时网站截图的代码。
1,html部分
<br /><input name="site" type="text" size="15" value="www."/>
<br/>大小: <br /><input name="x" type="text" value="800" size="3"/>x<input name="y" type="text" value="1000" size="3"/>px<br />
图片格式:<br /><select name="format"> <option value="PNG">PNG</option> <option value="JPEG">JPEG</option> </select>
<br /><br /><input type="submit" name="preview" value="生成截图"/></form>
2,php代码部分
<?php
$x = $_REQUEST['x'];
$y = $_REQUEST['y'];
$format = $_REQUEST['format'];
$site = $_REQUEST['site'];
$surl = 'http:///screenshot_it.php?site='.$site.'&x='.$x.'&y='.$y.'&format='.$format;
if($_REQUEST['format'] == 'PNG') {
$ifm = 'png';
} else {
$ifm = 'jpg';
}
$imt = 'image/'.$ifm;
$ifn = 'screenshot.'.$ifm;
if(isset($_REQUEST['preview'])) {
$iurl = 'http://域名/子目录/screenshot_it.php?site='.$site.'&x='.$x.'&y='.$y.'&format='.$format;
//例如:http:///screenshot_it.php?site='.$site.'&x='.$x.'&y='.$y.'&format='.$format;
$gwptitle = $_REQUEST['site'].' www.';
include_once("../css.php");
//可以删除
echo '<div>';
echo '» <b>点击图片下载截图!</div></b><br/><a href="'.$iurl.'"><img src="'.$iurl.'" width="240" height="320" /></a><br />';
} else {
header("Content-type: $imt");
header("Content-Disposition: attachment; filename= $ifn");
readfile($surl);
}
?>
php网站如何应对大流量与高并发呢?
首先,确认服务器硬件是否足够支持当前的流量。
普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,则请配置一台更高性能的专用服务器。
,否则怎么优化都不可能彻底解决性能问题。
其次,优化数据库访问。
前台最好完全静态化,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
缓存技术,将动态数据存储到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-Blog都大量使用这种缓存技术。
如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用 Select * from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大 量SQL查询。
第三,禁止外部的盗链。
外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,Apache自 己就可以通过配置来禁止盗链,IIS也有一些第三方的ISAPI可以实现同样的功能。
为防止伪造refer代码方式的盗链,可以在图片上增加水印。
第四,控制大文件的下载。
大文件的下载会占用很大的流量,并且对于非SCSI硬盘来说,大量文件下载会消耗 CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要 提供,建议将大文件放在另外一台服务器上。
第五,使用不同主机分流主要流量
将文件放在不同的主机上,提供不同的镜像供用户下载。比如如果觉得RSS文件占用 流量大,那么使用FeedBurner或者FeedSky等服务将RSS输出放在其他主机上,这 样别人访问的流量压力就大多集中在FeedBurner的主机上,RSS就不占用太多资源了。
第六,使用流量分析统计软件。
在网站上安装一个流量分析统计软件,可以即时知道哪些地方耗费了大量流量,哪些页 面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以。我推荐使 的流量分析统计软件是Google Analytics(Google分析)。我使用过程中感觉其效果非常不错,稍后我将详细介绍一下Google Analytics的一些使用常识和技巧。
.分表 2.读写分离
3.前端优化。Nginx替换Apache(前端做负载均衡)
主要还是要看分布式架构是否到位,mysql和缓存的优化都是有限度的优化,而分布式架构做出来了,PV增长后,只需要堆机器就能扩容。
优化经验:
首先,学会用explain语句分析select语句,优化索引、表结构,其次,合理运用memcache等缓存,降低mysql的负载。
最后,尽量用facebook的hiphop-php编译下PHP编译,以提高程序效率。
php实例之显示最新三条留言信息。
代码:
<html> <head> <title>显示留言信息-www.</title> </head> <body> <h3>显示最新的三条留言</h3> <?php $rs = @mysql_connect( "localhost", "userName", "password" )or die( "Could not connect to MySQL" ); $rs = @mysql_select_db( "my_database" ) or die( "Could not select database" ); $sql = "select * from guestbook order by time desc limit 3"; $rs = @mysql_query( $sql ) or die( "Could not execute SQL query" ); while ( $row = mysql_fetch_array( $rs ) ) { ?> <table> <tr> <td><b>名称:</b> <?php echo $row["name"]; ?></td> <td><b>电子邮箱:</b> <a href="mailto:<?php echo $row["email"]; ?>"> <?php echo $row["email"]; ?></a> </td><tr> <tr><td colspan="2"> <?php $datetime = $row["time"]; $year = substr( $datetime, 0, 4 ); $mon = substr( $datetime, 4, 2 ); $day = substr( $datetime, 6, 2 ); $hour = substr( $datetime, 8, 2 ); $min = substr( $datetime, 10, 2 ); $sec = substr( $datetime, 12, 2 ); $orgdate = date("l F dS, Y h:i A",mktime( $hour, $min, $sec, $mon, $day, $year ) ); ?> 日期: <?php echo $orgdate; ?></td></tr> <tr><td colspan="2"><b>评论:</b> <?php echo $row["comments"]; ?></td></tr> </table> <br> <?php } ?> </body> </html>