php有什么有趣的代码(php最简单的代码)
admin 发布:2022-12-19 02:59 129
本篇文章给大家谈谈php有什么有趣的代码,以及php最简单的代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、高质量PHP代码的50个技巧(3)
- 2、学php必收藏的几个经典代码
- 3、GitHub 上有哪些比较有趣的 PHP 项目?
- 4、PHP一段很有趣的代码!求解释
- 5、php最经典,最基础的代码,适合入门的
高质量PHP代码的50个技巧(3)
42
43
44
45
/**
Method to execute a command in the terminal
Uses :
1. system
2. passthru
3. exec
4. shell_exec
*/
function terminal($command)
{
//system
if(function_exists('system'))
{
ob_start();
system($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
//passthru
else if(function_exists('passthru'))
{
ob_start();
passthru($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
//exec
else if(function_exists('exec'))
{
exec($command , $output , $return_var);
$output = implode("\n" , $output);
}
//shell_exec
else if(function_exists('shell_exec'))
{
$output = shell_exec($command) ;
}
else
{
$output = 'Command execution not possible on this system';
$return_var = 1;
}
return array('output' = $output , 'status' = $return_var);
}
terminal('ls');
上面的函数将运行shell命令, 只要有一个系统函数可用, 这保持了代码的一致性.
5. 灵活编写函数
?
1
2
3
4
5
6
function add_to_cart($item_id , $qty)
{
$_SESSION['cart']['item_id'] = $qty;
}
add_to_cart( 'IPHONE3' , 2 );
使用上面的函数添加单个项目. 而当添加项列表的时候,你要创建另一个函数吗? 不用, 只要稍加留意不同类型的参数, 就会更灵活. 如:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function add_to_cart($item_id , $qty)
{
if(!is_array($item_id))
{
$_SESSION['cart']['item_id'] = $qty;
}
else
{
foreach($item_id as $i_id = $qty)
{
$_SESSION['cart']['i_id'] = $qty;
}
}
}
add_to_cart( 'IPHONE3' , 2 );
add_to_cart( array('IPHONE3' = 2 , 'IPAD' = 5) );
现在, 同个函数可以处理不同类型的输入参数了. 可以参照上面的例子重构你的多处代码, 使其更智能.
6. 有意忽略php关闭标签
我很想知道为什么这么多关于php建议的博客文章都没提到这点.
?
1
2
3
?php
echo "Hello";
//Now dont close this tag
这将节约你很多时间. 我们举个例子:
一个 super_class.php 文件
?
1
2
3
4
5
6
7
8
9
?php
class super_class
{
function super_function()
{
//super code
}
}
?
//super extra character after the closing tag
index.php
?
1
2
require_once('super_class.php');
//echo an image or pdf , or set the cookies or session data
这样, 你将会得到一个 Headers already send error. 为什么? 因为 “super extra character” 已经被输出了. 现在你得开始调试啦. 这会花费大量时间寻找 super extra 的位置。因此, 养成省略关闭符的习惯:
?
1
2
3
4
5
6
7
8
9
?php
class super_class
{
function super_function()
{
//super code
}
}
//No closing tag
这会更好.
7. 在某地方收集所有输入, 一次输出给浏览器
这称为输出缓冲, 假如说你已在不同的函数输出内容:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function print_header()
{
echo "p id='header'Site Log and Login links/p";
}
function print_footer()
{
echo "p id='footer'Site was made by me/p";
}
print_header();
for($i = 0 ; $i 100; $i++)
{
echo "I is : $i ';
}
print_footer();
替代方案, 在某地方集中收集输出. 你可以存储在函数的局部变量中, 也可以使用ob_start和ob_end_clean. 如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function print_header()
{
$o = "p id='header'Site Log and Login links/p";
return $o;
}
function print_footer()
{
$o = "p id='footer'Site was made by me/p";
return $o;
}
echo print_header();
for($i = 0 ; $i 100; $i++)
{
echo "I is : $i ';
}
echo print_footer();
为什么需要输出缓冲:
可以在发送给浏览器前更改输出. 如 str_replaces 函数或可能是 preg_replaces 或添加些监控/调试的html内容.
输出给浏览器的同时又做php的处理很糟糕. 你应该看到过有些站点的侧边栏或中间出现错误信息. 知道为什么会发生吗? 因为处理和输出混合了.
8. 发送正确的mime类型头信息, 如果输出非html内容的话.
输出一些xml.
?
1
2
3
4
5
6
$xml = '?xml version="1.0" encoding="utf-8" standalone="yes"?';
$xml = "response
code0/code
/response";
//Send xml data
echo $xml;
工作得不错. 但需要一些改进.
?
1
2
3
4
5
6
7
$xml = '?xml version="1.0" encoding="utf-8" standalone="yes"?';
$xml = "response
code0/code
学php必收藏的几个经典代码
经典循环例子
HTML
HEAD
TITLE经典循环例子/TITLE
/HEAD
BODY
?
for($counter = 1; $counter = 6; $counter++) //循环6次
{
print("Bcounter is $counter/BBR\n"); //打印6次
}
?
/BODY
/HTML
for的高级运用
HTML
HEAD
TITLEfor的高级运用/TITLE
/HEAD
BODY
?
/*
** 打印必要的说明文字
*/
print("B距离星期一还有几天?/B\n");
print("OL\n");
for($currentDate = date("U"); //定义$currentDate时间格式
date("l", $currentDate) != "Monday"; //判断是不是当前系统时间是Monday
$currentDate += (60 * 60 * 24)) //当前时间加上1天
{
/*
** 打印时间名称
*/
print("LI" . date("l", $currentDate) . "\n");
}
print("/OL\n");
?
/BODY
/HTML
函数的简单调用:
HTML
HEAD
TITLE简单的函数/TITLE
/HEAD
BODY
FONT SIZE=5
?
function printBold($inputText) //定义function printBold()
{
print("B" . $inputText . "/B"); ////打印$inputText
}
print("这行没有加重!BR\n"); //直接打印字符串
printBold("这行加重了!!!"); //调用function printBold()函数
print("BR\n");
print("这行没有加重!BR\n"); //直接打印字符串
?
/FONT
/BODY
/HTML
有返回值的函数
HTML
HEAD
TITLE有返回值的函数/TITLE
/HEAD
BODY
FONT SIZE=5
?
function makeBold($inputText) //定义function makeBold()函数
{
$boldedText = "B";
$boldedText .= $inputText;
$boldedText .= "/B";
return($boldedText); //返回变量$boldedText
}
print("这行没有加重!!!BR\n"); //直接打印字符串
print(makeBold("这行被加重了!!!") . "BR\n");//调用function makeBold()函数
print("这行没有加重!!!BR\n"); //直接打印字符串
?
/SIZE
/BODY
/HTML
有默认参数的函数
HTML
HEAD
TITLE有默认参数的函数/TITLE
/HEAD
BODY
FONT SIZE=5
?
function printColored($Text, $Color="black") //定义function函数
{
print("FONT COLOR=\"$Color\"$Text/FONT"); //获取字符串的内容和颜色
}
printColored("这是黑颜色的字!"); //调用function函数
print("BRBR\n");
printColored("这是蓝颜色的字!", "blue"); //调用function函数
print("BR\n");
?
/SIZE
/BODY
/HTML
初始化数组
HTML
HEAD
TITLE初始化数组/TITLE
/HEAD
FONT SIZE=5
?
$monthName = array(1="January", "February", "March",//初始化一个数组
"April", "May", "June", "July", "August",
"September", "October", "November", "December");
print(" 英语的“5月”是B $monthName[5] /B。BR\n");//打印数组中的第6个元素
?
/FONT
/BODY
/HTML
获取数组中的元素
HTML
HEAD
TITLE获取数组中的元素/TITLE
/HEAD
?
$monthName = array(
/*定义$monthName[1]到$monthName[12]*/
1="January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December",
/*定义$monthName["Jan"]到$monthName["Dec"]*/
"Jan"="January", "Feb"="February",
"Mar"="March", "Apr"="April",
"May"="May", "Jun"="June",
"Jul"="July", "Aug"="August",
"Sep"="September", "Oct"="October",
"Nov"="November", "Dec"="December",
/*定义$monthName["Jan"]到$monthName["Dec"]*/
"January"="January", "February"="February",
"March"="March", "April"="April",
"May"="May", "June"="June",
"July"="July", "August"="August",
"September"="September", "October"="October",
"November"="November", "December"="December"
);
/*打印相关的元素*/
print("Month B5/B is B" . $monthName[5]. "/BBR\n");
print("Month BAug/B is B" . $monthName["Aug"] . "/BBR\n");
print("Month BJune/B is B" . $monthName["June"] . "/BBR\n");
?
/BODY
/HTML
创建一个多维数组
HTML
HEAD
TITLE创建一个多维数组/TITLE
/HEAD
?
$Cities = array( //二维数组array()
"华北地区"=array(
"北京市",
"天津市",
"石家庄"
),
"西北地区"=array(
"西安",
"拉萨"
)
);
print("华北地区: ".$Cities["华北地区"][0]); //打印$Cities["华北地区"][0]
?
/BODY
/HTML
PHP 4.0实现表格状打印
HTML
HEAD
TITLE实现表格状打印/TITLE
/HEAD
BODY
?
/*
** 数据表格化
*/
print("TABLE bgcolor='ffccoo' BORDER=\"1\"\n"); // 表格开始
for($Row=1; $Row = 12; $Row ++)
{
print("TR\n"); // 开始行
// do each column
for($Column=1; $Column = 12; $Column ++)
{
print("TD");//开始列
print($Row * $Column);//表格元素乘积
print("/TD");
}
print("/TR\n"); // 行结束
}
print("/TABLE\n"); // 表格结束
?
/BODY
/HTML
查看系统的一些变量
HTML
HEAD
TITLE查看PHP的环境变量/TITLE
/HEAD
BODY
?
print("你正在用文件的名字为: ");
print(__FILE__);
print(" BR\n");
print("hr");
print("你的操作系统为: ");
print(PHP_OS);
print("hr");
print("你的php的版本为: ");
print(PHP_VERSION)
?
/BODY
/HTML
打开本地或者远程文件
HTML
HEAD
TITLE打开本地或者远程文件/TITLE
/HEAD
BODY
?
print("H3通过http协议打开文件/H3\n");
// 通过 http 协议打开文件
if(!($myFile = fopen("d:web/web/php/test/data.txt", "r")))
{
print("文件不能打开");
exit;
}
while(!feof($myFile)) //循环
{
// 按行读取文件中的内容
$myLine = fgetss($myFile, 255);
print("$myLine BR\n");
}
// 关闭文件的句柄
fclose($myFile);
?
/BODY
/HTML
打开文件的几种方式比较
HTML
HEAD
TITLE读取文件内容/TITLE
/HEAD
BODY
?
// 打开文件同时打印文件的每一个字符
if($myFile = fopen("data.txt", "r"))
{
while(!feof($myFile))
{
$myCharacter = fgetc($myFile);
print($myCharacter);
}
fclose($myFile);
}
?
? print("hr");?
?
// 打开文件同时打印文件的每一行
if($myFile = fopen("data.txt", "r"))
{
while(!feof($myFile))
{
$myLine = fgets($myFile, 255);
print($myLine);
}
fclose($myFile);
}
?
? print("hr");?
?
/* 打开文件同时打印文件的每一行,
同时去掉取回字符串中的 HTML 语言
*/
if($myFile = fopen("data.txt", "r"))
{
while(!feof($myFile))
{
$myLine = fgetss($myFile, 255);
print($myLine);
}
fclose($myFile);
}
?
/BODY
/HTML
访问文件常见属性
HTML
HEAD
TITLE访问文件常见属性/TITLE
/HEAD
BODY
BR
?
print("文件的所有者(UID 值):");
print(fileowner("data.txt")."br");
print("文件的大小:");
print(filesize("data.txt")."br");
print("文件的类型:");
print(filetype("data.txt")."br");
?
/BODY
/HTML
调用文本文件内容
HTML
HEAD
TITLE调用文本文件内容/TITLE
/HEAD
BODY
CENTER
?
// 打开文件同时,打印每一行
$myFile = file( "data.txt");
for($index = 0; $index count($myFile); $index++)
{
print($myFile[$index]."BR");
}
?
/CENTER
/BODY
/HTML
创建目录函数
HTML
HEAD
TITLE创建目录函数/TITLE
/HEAD
BODY
?
if(mkdir("myDir1", 0777)) //创建目录的函数
{
print("目录创建成功"); //目录建立成功
}
else
{
print("目录建立失败!"); //目录建立失败
}
?
/BODY
/HTML
浏览目录
HTML
HEAD
TITLE浏览目录/TITLE
/HEAD
BODY
?
// 使用表格浏览目录的结构
print("TABLE BORDER=\"1\"\n");
// 创建表格的头
print("TRfont color='red'\n");
print("TH文件名/TH\n");
print("TH文件的大小/TH\n");
print("/font/TR\n");
$myDirectory = opendir("."); // 建立操作目录的句柄
// 读出目录中的每一个子项
while($entryName = readdir($myDirectory))
{
print("TR");
print("TD$entryName/TD");
print("TD ALIGN=\"right\"");
print(filesize($entryName));
print("/TD");
print("/TR\n");
}
closedir($myDirectory); // 关闭目录
print("/TABLE\n");
?
/BODY
/HTML
PHP相关信息
HTML
HEAD
TITLEPHP相关信息/TITLE
/HEAD
BODY
?
phpinfo();
?
/BODY
/HTML
常用的数值判断函数
HTML
HEAD
TITLE常用的数值判断函数/TITLE
/HEAD
BODY
?
//判断数组
$colors = array("red", "blue", "green");
if(is_array($colors))
{
print("colors is an array"."br");
}
//双精度数判断
$Temperature = 15.23;
if(is_double($Temperature))
{
print("Temperature is a double"."br");
}
//整数判断
$PageCount = 2234;
if(is_integer($PageCount))
{
print("$PageCount is an integer"."br");
}
//对象判断
class widget
{
var $name;
var $length;
}
$thing = new widget;
if(is_object($thing))
{
print("thing is an object"."br");
}
//字符判断
$Greeting = "Hello";
if(is_string($Greeting))
{
print("Greeting is a string"."br");
}
?
/BODY
/HTML
文件上传界面
HTML
HEAD
TITLE文件上传界面/TITLE
/HEAD
BODYTABLECENTER
?
if($UploadAction){
$UploadAction=0;
$TimeLimit=60;
/*设置超时限制时间默认时间为 30s,设置为0时为不限时 */
set_time_limit($TimeLimit);
If(($Upfile != "none")
($Upfile != ""))
{
$Filepath="d:\web\\php\test"; //上载文件存放路径
$FileName=$Filepath.$Upfile_name;
if($Upfile_size 1024) //上载文件大小
{$FileSize = (string)$Upfile_size . "字节";}
elseif($Upfile_size (1024 * 1024))
{
$FileSize = number_format((double)($Upfile_size / 1024), 1) . " KB";
}
else
{
$FileSize = number_format((double)($Upfile_size/(1024*1024)),1)."MB";
}
if(!file_exists($FileName))
{
if(copy($Upfile,$FileName))
{unlink($Upfile);
echo "brbr\n";
echo "文件 $Upfile_name 已上载成功!";
echo "brbr\n";
echo "文件位置:$FileName";
echo "brbr\n";
echo "文件大小:$FileSize";
echo "brbr\n";
}
else
{echo "文件 $Upfile_name上载失败!"; }
}
else
{echo "文件 $Upfile_name已经存在!"; }
}
else
{echo "你没有选择任何文件上载!"; }
set_time_limit(30); //恢复默认超时设置
}
?
FORM ENCTYPE = "multipart/form-data" NAME = "SubmitForm"
ACTION = "default.php" METHOD = "POST"
INPUT TYPE = "hidden" NAME = "MAX_FILE_SIZE" VALUE ="1000000"
INPUT TYPE = "hidden" NAME = "UploadAction" VALUE = "1"
TRTDINPUT NAME = "Upfile" TYPE = "file" SIZE = "30"/TD
/TRTRTDINPUT NAME = "submit" VALUE = "提交" TYPE = "submit"
INPUT NAME = "reset" VALUE = "重置" TYPE = "reset"/TD
/TR/FORM/CENTER/TABLE
/BODY
/HTML
GitHub 上有哪些比较有趣的 PHP 项目?
swoole, C扩展实现的PHP异步并行网络通信框架,可以重新定义PHP。过去PHP只能做Web项目,现在有了Swoole。任意服务器端程序都可以用PHP写。swoole_framework,基于swoole扩展开发的一个开发框架 。yaf,C扩展实现的高性能Web开发框架 。php-webim,基于swoole实现的Web即时聊天工具具,支持websocket+http comet长链接推送,可以发送文字内容和图片。
使用PHP代码实现异步框架。如果说swoole是node.js的升级版,react.php就是标准的PHP版本node.js workerman ,类似swoole,不过是纯PHP实现的官网有很多示例项目。底层功能比swoole少一些,但相对简单,应用层面的功能比swoole丰富。phalcon ,俗称尔康框架,与yaf类似也是C扩展开发的高性能Web框架,与yaf相比phalcon提供的功能更多更完善。
可以用近似PHP的一种中间代码写程序,然后自动转为C++,并作为扩展来运行。可以解决PHP语言密集计算性能差的问题。phpdaemon,基于swoole扩展写的异步redis客户端,压测起来性能跟Go语言之类的差不多。
PHP一段很有趣的代码!求解释
如果是test(++$page);才会先+1,再代入test函数,但是你是test($page++);他会优先执行test($page);再执行$page++,所以test($page)依然是传入1,下一次执行到这里还是会这样,无限循环
php最经典,最基础的代码,适合入门的
PHP是一种可以嵌入到HTML中的运行在服务器端的脚本语言,所以为了体现PHP的特性我们可以分两种模式来实现PHP代码
1、 PHP嵌入到HTML中,例如index.php
html
head/head
body
!--因为PHP嵌入到HTML中,所以需要完全区分PHP代码和HTML代码--
?php
//输出hello world
echo 'hello world;
?
/body
/html
2、 PHP独立文件,只有PHP代码,例如index.php
?php
//输出
echo 'hello world';
//不需要闭合标签
关于php有什么有趣的代码和php最简单的代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-18seo网站优化,seo网站优化是做什么的
- 05-18seo是什么职业,seo是做什么的?
- 05-18seo优化是什么意思,seo是什么意思
- 05-18sem优化,sem优化师是做什么的
- 05-18网站建设是干嘛的,网站建设是什么工作
- 05-18搜索引擎是什么意思,全文搜索引擎是什么意思
- 05-17抖音关键词优化,抖音关键词优化是什么意思
- 05-17网络营销师是做什么的,网络营销师培训费用是多少
- 05-17seo全称是什么意思,seo全拼
- 05-17做公司网页,做公司网页有什么简单的方法
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接