d) ; } //exec else if(function_exists('exec')) { exec($command , $output , $return_var); $output = implode("\n" , $output); } } //passthru else if(function_exists('passthru')) { ob_start(); passthru($command , $return_var); $output = ob_get_contents(); ob_end_clean(); //system if(function_exists('system')) { ob_start(); system($command , $return_var); $output = ob_get_contents(); ob_end_clean(); 1. system 2. passthru 3. exec 4. shell_exec Method to execute a command in the terminal Uses : qqhuifu.wan128
100 41 101 42
102 43 103 44 104 45 105 46 106 47 107 48 108 49 109 50 } 110 51
else { $output = 'Command execution not possible on this system'; $return_var = 1; }
return array('output' => $output , 'status' => $return_var);
111 52 terminal('ls'); 上面的函数將运行 shell 命令, 只要有一个
系统函数可用, 这保持了代码的一致性.
5. 灵活编写函数
112 1 113 2 114 3 115 4 116 5 117 6 add_to_cart( 'IPHONE3' , 2 ); } function add_to_cart($item_id , $qty) { $_SESSION['cart']['item_id'] = $qty;
使用上面的函数添加单个项目. 而当添加项
列表的时候,你要创建另一个函数吗? 不用, 只要稍加留意不同类型的参数, 就会更灵活. 如: 118 01 function add_to_cart($item_id , $qty) 119 02 { 120 03 121 04 122 05 123 06 124 07 125 08 126 09 127 10 128 11 129 12 130 13 131 14 132 15 } 133 16 134 17 add_to_cart( 'IPHONE3' , 2 ); 135 18 add_to_cart( array('IPHONE3' => 2 , 'IPAD' => 5) ); 现在, 同个函数可以处理不同类型的输入参数了. 可以参照上面的例子重构你的多处代码, 使其更智能. 6. 有意忽略 php 关闭标签 我很想知道为什么这么多关于 php 建议的博客文章都没提到这点. 136 1 137 2 138 3 echo "Hello"; $qty) { $_SESSION['cart']['i_id'] = $qty; } if(!is_array($item_id)) { $_SESSION['cart']['item_id'] = $qty;
139 4 140 5 //Now dont close this tag
这將节约你很多时间. 我们举个例子: 一个 super_class.php 文件 141 01 { 144 04 145 05 146 06 147 07 148 08 } 149 09 ?> 150 10 //super extra character after the closing tag index.php 151 1 152 2 153 3 //echo an image or pdf , or set the cookies or session data require_once('super_class.php'); } function super_function() { //super code
这样, 你將会得到一个 Headers already send error. 为什么? 因为 “super extra character” 已经被输出了. 现在你得 开始调试啦. 这会花费大量时间寻找 super extra 的位置. 因此, 养成省略关闭符的习惯: 154 01 Site was made by me
"; echo "
Site Log and Login links
"; } function super_function() { //super code
175 12 for($i = 0 ; $i < 100; $i++) 176 13 { 177 14 178 15 } 179 16 print_footer(); 替代
方案, 在某地方集中收集输出. 你可以存储在函数的局部变量中, 也可以使用 ob_start 和 ob_end_clean. 如下: 180 01 function print_header() 181 02 { 182 03 183 04 184 05 } 185 06 186 07 function print_footer() 187 08 { 188 09 189 10 190 11 } 191 12 192 13 echo print_header(); 193 14 for($i = 0 ; $i < 100; $i++) 194 15 { 195 16 196 17 } 197 18 echo print_footer(); 为什么需要输出缓冲: >>可以在发送给浏览器前更改输出. 如 str_replaces 函数或可能是 preg_replaces 或添加些监控/调试的 html 内容. >>输出给浏览器的同时又做 php 的处理很糟糕. 你应该看到过有些站点的侧边栏或中间出现错误信息. 知道为什么会发 生吗? 因为处理和输出混合了. 8. 发送正确的 mime 类型头信息 如果输出非 html 内容的话。 类型头信息, 内容的话。 输出一些 xml. 198 1 199 2 200 3 201 4 202 5 203 6 204 7 //Send xml data echo $xml; $xml = ''; $
xml = "
0
"; echo "I is : $i
'; $o = "
Site was made by me
"; return $o; $o = "
Site Log and Login links
"; return $o; echo "I is : $i
';
工作得不错. 但需要一些改进. 205 1 206 2 207 3 208 4 209 5 210 6 //Send xml data $xml = ''; $xml = "
0
";
211 7 212 8
-
相关文章
-
最新文件
关于网学 |
万能工具 |
在线交流 |
会员中心 |
查询论文 |
招聘说明 |
精品资源 |
专题论文 |
会员中心 |
联系方式 |
下载目录
论文目录
Copyright 2005-2018 www.myeducs.cn All Rights Reserved 版权所有·网学网 提供大量原创论文 参考论文 论文资料 源代码 管理及投稿 E_mail:3710167@qq.com
郑重声明: 本网站论文均来自互联网,由本站会员上传或下载,仅供个人交流、学习、参考之用,版权归原作者所有
请下载完后24小时之内删除,任何人不得大幅抄录、在期刊上发表或作为商业之用。如涉及版权纠纷,本网站不承担任何法律及连带责任。