php实例源码
PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器
端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。PHP源码指的使用PHP开发的实例,没有经过二次封装,能够直接进行二
次开发的程序,PHP简单易学,如果你想学网站开发,PHP是一个不错的选择,因会PHP跟其它语言相对有一定的优势:
1、PHP是开放的源代码:所有的PHP源代码事实上都可以得到。
2、PHP是免费的。和其它技术相比,PHP本身免费。
3、php的快捷性,程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言,编辑简单,实用性强,更适合初学者。
4、跨平台性强:由于PHP是运行在服务器端的脚本,可以运行在UNIX、linux、WINDOWS下。
5、效率高:PHP消耗相当少的系统资源。
6、图像处理:用PHP动态创建图像
7、面向对象:在php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序。
8、专业专注:
‘贰’ 求写段php源码,功能简单
这个要写两个php页面先写一个
str.php页面如
<html>
<head>
<title>xxx</title>
</head>
<body>
<form action='url.php' method='get'>
<input name='url' type='text' value='' size='15'>
<input type='submit' value='检测'/>
</frorm>
</body>
</html>
在写个接收你输入的告缺一个败数处理页面url.php如
<?php
$i=$_GET['url'];
echo "$i";
//echo header("location:http://$i");
$pattern = "/a*[sS]b*[sS]c/";//这个就是匹配abc
if(preg_match($pattern,$i,$match)){
//这段有abc字节的话就跳转abc.com
echo header("location:http://abc.com");
}else{
//没有abc的话就跳原链接
echo header("location:http://$i");
}
?>
由于你没说一段中如果同时有abc字节或者123字节不知道跳转到哪个袜枯辩页面
所以我就写了个用正则匹配的abc字节 如果包含abc的话就跳转abc如果这个网站没有abc就跳转原来的网页
‘叁’ php目录操作实例代码
这篇文章主要介绍了php目录操作实例代码,需要的朋友可以参考下
代码如下:
<?php
/**
*
listdir
*/
header("content-type:text/html;charset=utf-8");
$dirname
=
"./final/factapplication";
function
listdir($dirname)
{
$ds
=
opendir($dirname);
while
(false
!==
($file
=
readdir($ds)))
{
$path
=
$dirname.'/'.$file;
if
($file
!=
'.'
&&
$file
!=
'..')
{
if
(is_dir($path))
{
listdir($path);
}
else
{
echo
$file."<br>";
}
}
}
closedir($ds);
}
listdir($dirname);
核心:递归的经典应用,以及文件和目录的基本操作。
代码如下:
<?php
/**
*
dir
*/
$srcdir
=
"../fileupload";
$dstdir
=
"b";
function
dir($srcdir,
$dstdir)
{
mkdir($dstdir);
$ds
=
opendir($srcdir);
while
(false
!==
($file
=
readdir($ds)))
{
$path
=
$srcdir."/".$file;
$dstpath
=
$dstdir."/".$file;
if
($file
!=
"."
&&
$file
!=
"..")
{
if
(is_dir($path))
{
dir($path,
$dstpath);
}
else
{
($path,
$dstpath);
}
}
}
closedir($ds);
}
dir($srcdir,
$dstdir);
核心:函数。
代码如下:
<?php
/**
*
deldir
*/
$dirname
=
'a';
function
deldir($dirname)
{
$ds
=
opendir($dirname);
while
(false
!==
($file
=
readdir($ds)))
{
$path
=
$dirname.'/'.$file;
if($file
!=
'.'
&&
$file
!=
'..')
{
if
(is_dir($path))
{
deldir($path);
}
else
{
unlink($path);
}
}
}
closedir($ds);
return
rmdir($dirname);
}
deldir($dirname);
核心:注意unlink删除的是带path的file。
代码如下:
<?php
/**
*
dirsize
*/
$dirname
=
"a";
function
dirsize($dirname)
{
static
$tot;
$ds
=
opendir($dirname);
while
(false
!==
($file
=
readdir($ds)))
{
$path
=
$dirname.'/'.$file;
if
($file
!=
'.'
&&
$file
!=
'..')
{
if(is_dir($path))
{
dirsize($path);
}
else
{
$tot
=
$tot
+
filesize($path);
}
}
}
return
$tot;
closedir($ds);
}
echo
dirsize($dirname);
核心:通过判断$tot在哪里返回,理解递归函数。
‘肆’ PHP文件执行时显示源代码
<form action="access_cars.php" method="post"> 按楼主这么写,你的 access_cars.php 应该放在表单这个html同一个文件夹下,且这个文件夹里面可以运行php的
‘伍’ php生成excel完整实例代码
下载phpexcel类库 代码如下:
<?php
require_once('PHPExcel.php');
require_once('PHPExcel/IOFactory.php');
$objPHPExcel=new PHPExcel();
$iofactory=new IOFactory();
//获得数据 ---一般是从数据库中获得数据
$data=array(
0=>array('id'=>2013,'name'=>'张某某','age'=>21),
1=>array('id'=>201,'name'=>'EVA','age'=>21)
);
//设置excel列名
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','编号');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B1','姓名');
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C1','年龄');
//把数据循环写入excel中
foreach($data as $key => $value){
$key+=2;
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$key,$value['id']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$key,$value['name']);
$objPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$key,$value['age']);
}
//excel保存在根目录下 如要导出文件,以下改为注释代码
$objPHPExcel->getActiveSheet() -> setTitle('SetExcelName');
$objPHPExcel-> setActiveSheetIndex(0);
$objWriter = $iofactory -> createWriter($objPHPExcel, 'Excel2007');
$objWriter -> save('SetExcelName.xlsx');
//导出代码
// $objPHPExcel->getActiveSheet() -> setTitle('SetExcelName');
// $objPHPExcel-> setActiveSheetIndex(0);
// $objWriter = $iofactory -> createWriter($objPHPExcel, 'Excel2007');
// $filename = 'SetExcelName.xlsx';
// header('Content-Type: application/vnd.ms-excel');
// header('Content-Type: application/octet-stream');
// header('Content-Disposition: attachment; filename="' . $filename . '"');
// header('Cache-Control: max-age=0');
// $objWriter -> save('php://output');
?>
‘陆’ 服务器程序源代码分析之二:php-fpm
php作为排名top2 互联网开发工具,非常流行,可以参考:中国最大的25个网站采用技术选型方案
php这个名称实际上有两层含义
直接定义:
php-fpm从php5.3.3开始已经进入到php源代码包,之前是作为patch存在的
很少人会去读php本身源代码,我6年前解决php内存泄露问题的时候做了些研究,最近再查看了一番,发现php的开发者很有诚意,这是一款非常出色的服务器软件,支持如下
在linux服务器上,如果不设置 events.mechanism ,那么默认就是采用epoll,所以
php-fpm的IO模型&并发处理能力和nginx是完全一致
nginx以性能卓越闻名,大部分程序员都认为php效率低下,看了源代码,才知道这是传奇啊
在高性能部署的时候,大家往往会针对性的优化nginx 。我自己之前部署php程序也犯了错误,8G内存的server,php-fpm的max children都会设置128+,现在看来太多了,参考nginx的部署:
php-fpm配置为 3倍 cpu core number就可以了
php-fpm稳定性比nginx稍差 这是因为php-fpm内置了一个php解析器,php-fpm进程就和php程序捆绑了,如果php脚本写得不好,有死循环或者阻塞在某个远端资源上,会拖累加载它的php-fpm进程
而nginx和后端应用服务器之间通过网络连接,可以设置timeout,不容易堵死的
php-fpm的fastcgi是短连接 我原以为是长连接的,看了代码才知道也是短连接,处理一个request就关闭掉
php-fpm接口采用fastcgi 非常遗憾,php-fpm和fastcgi完全绑定了,无法独立使用 。只能部署在支持http-fcgi协议转换程序背后(nginx)。其实可以考虑在php-fpm代码包里面引入http协议支持,这样php-fpm可以独立运行,让nodejs无话可说
php-fpm等同于OpenResty OpenResty是一个国人开发的nginx模块,就是在nginx引入lua解释器. 实际上,它和php-fpm的唯一差别就是一个采用php语法,一个用lua,所以OpenResty要作为nginx增强包使用还可以,要选择它作为一个主要编程工具,没有任何必要
从架构上来说,php-fpm已经做到最好,超过大多数 python部署工具,我再也不黑它了
‘柒’ php源码有哪些
您问的应该是免费的php源码有哪些;
一.免费又可以用的如dedecms,帝国,eshop,discuz,这类源码需要你花点时间来研究,都可以直接用且没有错误;
二.另外一些各大网上下载的,都是些黑客发布的不完整有安全和版权问题的源码,不建议使用;
三.第三类,是一些在淘宝上出售的,几元或几十元的源码,这类是收费型免费源码,说明白些,就是这些人下载了免费的源码,再卖给你,这类源码的特点是完整性好些,人家即然卖了,肯定事先查看过,不过安全性不好,
四.最后一种就是请网络公司或个人仿站开发的php源码,这类特点是价格贵,当然也有便宜的就是开发好的成品站,如200源码网