资讯专栏INFORMATION COLUMN

PHP常用方法总结

Mr_houzi / 1512人阅读

对工作中常用的方法进行小结,以便后续查找。
";
        print_r($data);
        echo "
"; if($is_exit) exit(); } } // 1.获取根目录,由后往前推 define("ROOT_PATH",substr(__FILE__,0,strlen(__FILE__)-17)); // 应用根目录 rtrim "test/fun_test.php" dump(ROOT_PATH); // 打印 /Applications/XAMPP/xamppfiles/htdocs/web/camel/shop_wms/ // 2.设置include_path set_include_path(get_include_path(). PATH_SEPARATOR . ROOT_PATH); //设置include path,包含文件可忽略ROOT_PATH部分 // 3.定义分隔符常量 define("DS", DIRECTORY_SEPARATOR); // 4.根据文件名获取类名和扩展名 dump("========4.根据文件名获取类名和扩展名============"); $impl_file = "/web/camel/shop_wms/test/hello.class.php"; list($impl_class, $ext) = explode(".", basename($impl_file), 2); // array explode ( string $delimiter , string $string [, int $limit ] ) // 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。 dump($impl_class); // 打印:hello dump($ext); // 打印:class.php // 5.标准对象 dump("======== 5.标准对象 ============"); $objitem = new stdClass(); $objitem->file = "test/hello.class.php"; // 动态的分配属相 $objitem->class = "hello"; dump($objitem); // 6.从路径解析参数 dump("======== 6.从路径解析参数 ============"); if(DS=="") { // windows 环境下 $app_script_file = str_replace("/", DS, $_SERVER["SCRIPT_FILENAME"]); } else { $app_script_file = $_SERVER["SCRIPT_FILENAME"]; } dump($app_script_file); // 打印:/Applications/XAMPP/xamppfiles/htdocs/web/camel/shop_wms/test/fun_test.php // 这里将 $app_script_file 写死: $app_script_file = "/Applications/XAMPP/xamppfiles/htdocs/web/camel/shop_test/shop_api/boot/req_init.php"; $cnt = strlen(ROOT_PATH); $file_path = substr($app_script_file, $cnt, strlen($app_script_file) - $cnt); list($app_name, $other) = explode(DS, $file_path, 2); dump($app_name); // test dump($other); // fun_test.php // D:/xampp/php/php.exe -f D:/xampp/htdocs/shop/shop_api/webservice/web/index.php app_fmt=json app_act=taobao_api/taobao_trades_sold_get_all sd_id=4 start_modified="2012-09-01 00:00:00" end_modified="2012-09-11 00:00:00" $cnt = strlen("web".DS."app".DS); // /etast/shop_api/webservice/web/app/taobao_api.php // 7.路径数据过滤 dump("======== 7.路径数据过滤 ============"); $pathgrp = "/women/hek8dso*jid/heloid.php"; $pathgrp = preg_replace("/[^a-z0-9_/]+/i", "", $pathgrp); dump($pathgrp); // /women/hek8dsojid/heloidphp $rpos=strrpos($pathgrp,"/"); dump($rpos); // 17 if($rpos!==false){ $path=substr($pathgrp, 0, ++$rpos); dump($rpos); dump($path); // /women/hek8dsojid/ $grp=substr($pathgrp,$rpos,strlen($pathgrp)-$rpos); } else $grp=$pathgrp; dump($grp); // heloidphp // 8.用户定义的错误处理函数 dump("======== 8.用户定义的错误处理函数 ============"); // 用户定义的错误处理函数 function myErrorHandler($errno, $errstr, $errfile, $errline) { echo "Custom error: [$errno] $errstr
"; echo " Error on line $errline in $errfile
"; } // 设置用户定义的错误处理函数 set_error_handler("myErrorHandler"); $test=2; // 触发错误 if ($test>1) { trigger_error("A custom error has been triggered"); } // 打印: /** Custom error: [1024] A custom error has been triggered Error on line 105 in /Applications/XAMPP/xamppfiles/htdocs/web/camel/shop_wms/test/fun_test.php */ // 9.解析路径数据 dump("======== 9.解析路径数据 ============"); function get_path_grp_act($action,&$path,&$grp,&$act){ if(! $action) return; $action = str_replace("","/",$action); //如果是openapi接口 if(strpos($action, "efast") === 0) { $action = preg_replace("/[^a-z0-9_.]+/i", "", $action); $action = str_replace("..",".",$action); $action = preg_replace("/./","/",$action,1); $action = str_replace(".","_",$action); } else { $action = preg_replace("/[^a-z0-9_/]+/i", "", $action); } $path=$grp=NULL; $rpos=strrpos($action,"/"); if($rpos!==false){ $pathgrp=substr($action,0,$rpos); $act=substr($action,$rpos+1,strlen($action)-$rpos); $rpos=strrpos($pathgrp,"/"); if($rpos!==false){ $path=substr($pathgrp,0,++$rpos); $grp=substr($pathgrp,$rpos,strlen($pathgrp)-$rpos); }else $grp= $pathgrp; }else $act=$action; } $path=$grp=$act=NULL; $action = "taobao_api/item_quantity_sync"; get_path_grp_act($action, $path, $grp, $act); echo "path=".$path; echo "
"; echo "grp=".$grp; echo "
"; echo "act=".$act; echo "
"; 结果打印: path=
grp=taobao_api
act=item_quantity_sync
// 10.调用 POST 方法 // shop_test/moudle/openapi/OpenAPIOperatingBase.php

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26257.html

相关文章

  • Laravel - Artisan 个人常用总结

    摘要:通过输入任何错误的命令行,均可获得类似单词的正确命令行。倘若您对本文有兴趣,建议常用,以便最快获得结果。并没有看到任何优雅之处。表单请求验证器事件一句话简述简单实现的观察者模式设计模式的一种。表单请求验证器在下添加事件和监听器。 通过输入任何错误的 Artisan 命令行,均可获得类似单词的 Artisan 正确命令行。倘若您对本文有兴趣,建议常用 Ctrl+F,以便最快获得结果。并没...

    CKJOKER 评论0 收藏0
  • PHP面试总结记录

    摘要:尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在很大的应用系统中。由于在事务执行的过程中,数据库将会被锁定,因此其它的用户请求只能暂时等待直到该事务结束。 1、双引号和单引号的区别~双引号解释变量,单引号不解释变量~双引号解释转义字符,单引号不解释转义字符,但是解释和~能使单引号字符尽量使用单引号,单引号的效率比双引号要高(双引号要先遍...

    zebrayoung 评论0 收藏0
  • PHP常用判断条件总结

    摘要:常用判断条件的种类变量例如比较运算符例如逻辑运算符例如具体类型判断例如等变量无论变量是什么类型,都会转成类型空字符串空数组都是数值字符串都是类型的都是类型有三种情况定义并赋值为定义不赋值不定义不存在的主要是用于判断类型的,其他类型无论什么值 常用判断条件的种类 变量 例如:$var isset() empty() 比较运算符 例如:> < == != === !== 逻辑运算符 例如...

    lyning 评论0 收藏0
  • 各开源框架使用与设计总结(三)

    摘要:总结了框架与架构的区别。站在框架之外,看框架,看框架的共同特征与功用。由于框架所带来的问题,以性能可扩展问题,相对严重,所以分析性能的改造方向,总结了六大点。包括框架介绍,的使用,以及。 六、各项实践,性能评测 下面进入性能评测,评测我们相对就比较快速一些。直接用ab命令,来测试上面的所提及的一些改进。 以下评测,所有测试页面,均为:http://hjvote.app.ucai.cn/...

    objc94 评论0 收藏0
  • 论如何把后台管理系统写出花

    摘要:知识在于分享,也是希望和大家交流下,如何把后台管理系统写得能更具工程化,模块化,更有效率。后台管理系统多为端,所以和的技术运用不多,会根据产品需求进行优雅降级和渐进增强。 前两天看segmentfault的时候,突然间,想写篇文章总结一下那些年自己写过的后台管理系统。作为我前端的入门项目,我对后台管理系统的感情还是挺深的。本着以下几点原因,写了此文。 对后台管理系统做一个综合全面的总...

    sugarmo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<