PHP
SakuraLJ
像sakura一样灿烂
展开
-
docker php nginx [error] 6#0: *14 connect() failed (111: Connection refused)
1、我是这样建立容器的php-fpm 容器docker run -itd --name php-fpm -v /Users/nibuw/Documents/devops/data/wwwlogs/php-fpm.log:/usr/local/php/var/log/php-fpm.log php:7.0.9运行状态:[root@4469e557bf9b src]# ps uaxUSER...原创 2020-03-03 19:34:17 · 2030 阅读 · 0 评论 -
phpmyadmin getCookie() on null
PHP Fatal error: Uncaught Error: Call to a member function getCookie() on null in /usr/share/phpmyadmin/libraries/classes/Url.php:219Stack trace:#0 /usr/share/phpmyadmin/libraries/classes/Url.php(1...原创 2020-02-19 11:41:20 · 1132 阅读 · 0 评论 -
php 内存泄露检查工具valgrind
做个mark…… 参考 内存泄漏原创 2016-12-16 16:39:30 · 2148 阅读 · 0 评论 -
composer install 报错(Install or enable PHP's redis extension)
报错信息 Problem 1 - The requested PHP extension ext-redis * is missing from your system. Install or enable PHP's redis extension.解决办法 安装并开启redis扩展$ sudo apt-get install redis-server$ sudo apt-get in原创 2016-07-14 13:03:29 · 7675 阅读 · 0 评论 -
ubuntu 安装mysqlnd
执行命令:$sudo apt-get install mysqlnd原创 2016-07-12 11:59:38 · 1280 阅读 · 0 评论 -
PHP编程效率的21个要点
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、row[′id′]的速度是row[’id’] 的速度是row[id]的7倍。3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo str1,str1,str2。4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用fore转载 2016-07-11 14:25:40 · 632 阅读 · 0 评论 -
PHP开发中常见的一些错误
错误1:foreach循环后留下悬挂指针在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法:$arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8)这里有个问题很多人会迷糊。循环结束后,转载 2016-07-11 12:06:53 · 804 阅读 · 0 评论 -
php headers_sent的作用
headers_sent定义 headers_sent() 函数检查 HTTP 标头是否已被发送以及在哪里被发送。 如果报头已发送,则返回 true,否则返回 false。用法 headers_sent(file,line)//如果设置 file 和 line 参数,headers_sent() 会把输出开始的 PHP 源文件名和行号存入 file 和 line 变量中。假如文件名原创 2016-04-13 14:23:37 · 2132 阅读 · 0 评论 -
whoops手记
whoops简介whoops is a nice little library that helps you develop and maintain your projects better, by helping you deal with errors and exceptions in a less painful way.whoops安装使用composer安装composer requi原创 2016-04-05 14:00:20 · 2589 阅读 · 0 评论 -
php提示undefined index的几种解决方法
平时用$_post[''],$_get['']获取表单中参数时会出现Notice: Undefined index: --------我们经常接收表单POST过来的数据时报Undefined index错误,如下: $act=$_POST['action']; 用以上代码总是提示 Notice: Undefined index: action in D:\test\post.php转载 2016-03-11 16:44:47 · 7902 阅读 · 0 评论 -
php-cgi服务的启动方式
环境:unbuntu 14.04php-cgi启动有4种方式1、php-cgi -b 3344 直接启动的方式2、用spawn-cgi 启动3、php-fpm启动管理cgi4、网上找linux下php-cgi启动脚本spawn-cgi 启动方式:sudo spawn-fcgi -a 127.0.0.1 -p 3344 -F 10 -f /usr/bin/php-cgi -P /var/run/sp转载 2016-03-29 23:33:26 · 11931 阅读 · 0 评论 -
mark php安全问题
在所有php认为是int的地方输入string,都会被强制转换,比如$a = 'asdfgh';//字符串类型的a</br>echo $a[2]; //根据php的offset 会输出'd'</br>echo $a[x]; //根据php的预测,这里应该是int型,那么输入string,就会被intval成为0 也就是输出'a'如果switch是数字类型的case的判断时,switch会将其原创 2016-07-04 17:23:14 · 539 阅读 · 0 评论 -
php 如何转义emoji表情,让它可以存入utf8的数据库
方法1:base_encode64这种方法是可以,但是旧数据没有经过encode操作,取数据的时候如果统一进行decode的话,旧数据会丢失的。方法2:urlencode这个似乎可以,对没有经过encode的数据进行decode也不会有影响,而且多次decode似乎也不会有影响。你们说这个方法有缺陷吗?=======================一个发现,微信获取用户基本信息的时候,笑哭那个表情转载 2016-06-12 15:56:51 · 10725 阅读 · 0 评论 -
php处理微信小程序wx.uploadFile(OBJECT)发送过来的文件
业务场景: 用户修改自己的头像问题1、wx.uploadFile(OBJECT)发送过来的文件type是application/octet-stream,不能简单的从type中获得文件的后缀解决1、用move_uploaded_file获得文件的type,并判断后缀名代码如下:$tmpP = $_FILES["headimg"]["tmp_name"]; if($tmpP){ $t原创 2016-10-19 14:54:21 · 6819 阅读 · 2 评论 -
Debug your PHP in Docker with Intellij/PHPStorm and Xdebug
gihub原创 2017-09-28 15:39:36 · 1719 阅读 · 0 评论 -
clion开发调试php7扩展
生成扩展框架执行php7源码/xxx/php-7.1.3/ext目录下的ext_skel命令,生成扩展框架$ /xxx/php-7.1.3/ext/ext_skel --extname=ljtest //ljtest为扩展名编译并把扩展加入php$ cd ljtest$ /usr/local/php-7.1.3/bin/phpize$ ./configure --with-php-confi原创 2017-08-15 12:18:05 · 2409 阅读 · 0 评论 -
docker lnmp liunx+nginx+mysql+php 分离部署
背景每次换电脑都要重新部署lnmp,每次花费的时间至少要半天,很浪费时间。所以就把lnmp docker化。环境本机环境:ubuntu 16.04 LTS安装dockeer$ apt-get install docker.io$ docker --version //output:Docker version 1.12.6, build 78d1802 说明docker安装成功编写dockfil原创 2017-06-09 17:30:03 · 3350 阅读 · 1 评论 -
用swoole搭建推送消息到小程序的服务器
环境php7.1.3 (已安装 ) centos7安装 swoole下载swoole 然后cd swoolephpize./configure --enable-openssl (开启ssl) --enable-swoole --enable-sockets --enable-swoole-debug (开启debug,会在后台打印log,在生产环境不要开启) -原创 2017-06-23 18:18:41 · 4470 阅读 · 0 评论 -
php剔除emoji表情符号
场景用phpoffice/phpexcel导出用户数据成excel时,如果昵称包含表情,会导致数据不完整。解决办法过滤或替换emoji。因为emoji通过json_encode后,大部分都是u[ed] 开头的编码,所以先对昵称json_encode然后用正则过滤或替换成*,以下时相关代码:$value = json_encode($value);$value = preg_replace("/\\原创 2017-05-31 20:47:32 · 5211 阅读 · 0 评论 -
smarty中isset
samrty中没有isset的方法,下面为替代的写法:{if $missing_var|default:FALSE}NOT MISSING{else}MISSING{/if}原创 2017-05-31 13:45:46 · 2014 阅读 · 0 评论 -
phpize时无法获取'ltmain.sh' 的文件状态(stat): 没有那个文件
错误:sakurallj@sakura:~/下载/vld-0.11.1/vld-0.11.1$ phpizeConfiguring for:PHP Api Version: 20121113Zend Module Api No: 20121212Zend Extension Api No: 220121212cp: 无法获取'ltmain.sh' 的文件状态(原创 2016-12-14 16:25:30 · 5250 阅读 · 0 评论 -
php 把数组作为一个元素添加到自己会导致暂时的内存泄露
把数组作为一个元素添加到自己示例1<?php$a = array( 'one' );$a[] =& $a;xdebug_debug_zval( 'a' );?>output a: (refcount=2, is_ref=1)=array ( 0 => (refcount=1, is_ref=0)=’one’, 1 => (refcount=2, is_ref=1)转载 2016-12-16 19:05:20 · 796 阅读 · 0 评论 -
ubuntu执行curl_init报错
原因分析: 1、php部支持curl 2、… 解决办法: 1、安装php5-curlsudo apt-get install curl libcurl3 libcurl3-dev php5-curl原创 2016-03-02 09:48:25 · 3426 阅读 · 0 评论 -
php手记-set_include_path和get_include_path用法详解
phpset_include_pathget_include_pathset_include_path和get_include_path用法详解原创 2015-11-27 15:06:08 · 2576 阅读 · 0 评论 -
laravel5.1手记-在ubuntu下安装
安装composer参见 http://blog.csdn.net/sakurallj/article/details/50037767安装laravel5.1安装前提(需要满足下列条件,可以打印出phpinfo来检查):PHP版本 >= 5.5.9有 OpenSSL PHP Extension有 PDO PHP Extension有 Mbstring PHP Extension有 Tok原创 2015-11-25 15:50:28 · 982 阅读 · 0 评论 -
模拟请求
Request::create(‘/index.php?name=Fabien’);可以模拟浏览器发出请求。原创 2015-07-21 22:57:56 · 555 阅读 · 0 评论 -
syfomy自动根据url中的id找到对应的记录
以后有空会翻译。PHP-framework Symfony2 has a very nice component ParamConverter, which allows to convert parameters from URL into PHP variables. When the functionality that comes out of box isn’t enough, you s翻译 2015-07-29 20:22:31 · 930 阅读 · 0 评论 -
使用twig来组装数据使数据结构可视化
业务场景: 第三方平台实现微信图文,在页面上用ajax加载更多图文时需要组装大量的JSON数据,如果把数据的格式写到代码里面会使数据的结构不够清晰,如果数据结构变动那么改动就会比较麻烦,所以利用twig模板来组装数据,使数据结构清晰可视,以后数据结构变动只要修改传入到twig模板的数,以及修改twig的数据结构。 **项目使用的框架:**symfonytwig:{ "base_resp原创 2015-07-29 14:35:17 · 1096 阅读 · 0 评论 -
在cli/php.ini的文件添加xdebug报错
在cli/php.ini的文件添加如下xdebug配置报错[xdebug]zend_extension = /usr/lib/php5/20121212/xdebug.soxdebug.remote_host = 127.0.0.1xdebug.remote_enable = 1xdebug.remote_port = 9000xdebug.remote_handler = dbgpxd原创 2015-08-24 23:27:11 · 1060 阅读 · 0 评论 -
如何基于Symfony Components创建你的php框架(目录)
创建自己的php框架,在symfony组件的基础上翻译 2015-07-15 23:20:52 · 627 阅读 · 0 评论 -
symfony路由组件(The Routing Component)
The Routing component 把HTTP request转换为一系列的配置参数.安装你有两种方式来安装这个组件:通过 Composer (symfony/routing on Packagist);使用官方的 Git repository (https://github.com/symfony/Routing)。然后, 需要Composer把vendor/autoload.php翻译 2015-07-27 23:51:49 · 2604 阅读 · 0 评论 -
composer update 报The .git directory is missing from XXX
symfony 进行composer update 时报 - Updating tranzvision/bmorgweixin-handler-bundle (1.0.0 => dev-k1.2.0 4c22624) Failed: [RuntimeException] The .git directory is missing from /srv/www/XXX/HandlerBundl原创 2015-06-15 23:12:41 · 2998 阅读 · 0 评论 -
PHP中new static()与new self()的区别
PHP中new static()与new self()的区别self:始终指向self代码所在类的本身,无论这个类被继承了多少次,self都指向最初使用self的类; static:指向使用static的类,只有通过继承后,才能体现出static存在的意义,否则static和self一样。class A { public function getStatic(){ re原创 2015-06-15 00:02:25 · 2963 阅读 · 0 评论 -
symfony更新entity时自动设置时间字段
1、在更新entity时自动设置时间字段<?phpnamespace Tranz\BMTestBundle\Entity;use Doctrine\ORM\Mapping as ORM;/** * TestPage * * @ORM\Table(name="test_page") * @ORM\Entity * @ORM\HasLifecycleCallbacks() //这里引入do原创 2015-06-03 12:13:40 · 1690 阅读 · 0 评论 -
PHP截取中英文
代码如下:/** * @param $string * @param $from 从0开始…… * @param null $length * @return string * c_substr("给我一点", $from=0, 9)>>给我一 * c_substr("给我一点", $from=1, 9)>>我一 * c_su原创 2015-08-31 15:15:50 · 675 阅读 · 0 评论 -
PHP中file_exists与is_file,is_dir的区别
PHP中file_exists与is_file,is_dir的区别在php中file_exists与is_file,is_dir都可以用来检测目录或文件是否存在了,那么它们三者的具体区别在哪里呢,下面我们一起来看看吧。PHP的 file_exists = is_dir + is_file 它既可以判断文件是否存在,又可以判断目录是否存在。但这样一个全面的函数执行效率非常低,所以结论是: 如果要判转载 2015-09-09 17:53:39 · 2145 阅读 · 0 评论 -
UnexpectedValueException Could not parse version constraint ^1.0.2: Invalid version string “^1.0.2”
composer update 报错 UnexpectedValueException Could not parse version constraint ^1.0.2:Invalid version string “^1.0.2” 表明原因是phpunit的版本号使用了^,而composer不支持,导致更新失败。在2014年12月composer已经添加了对^的支持,PHPUnit从201原创 2015-09-10 14:22:06 · 7798 阅读 · 1 评论 -
php手记-根据类名获得类的定义(get_class_methods、get_class_vars...)
背景 最近在看laravel框架的源码,不知道Route是怎么定义的,找了很久都没找到,遂从网上找有什么方法可以根据类名获得类的命名空间什么的,最后找到了用get_class_methods获得Route类定义的相关方法名称,然后根据这些方法名称组合找到类的定义(Illuminate\Support\Facades\Facade),下面是在寻找方法过程中学到的知识。类相关魔术常量<?php原创 2015-11-25 11:09:31 · 3646 阅读 · 0 评论 -
php手记-获得文件或文件夹的上级目录、spl_autoload_register、__autoload
1、获得文件或文件夹的上级目录://__FILE__:/home/sakurallj/personDoc/phpWorkspace/fastRoute/vendor/composer/autoload_psr4.php$vendorDir = dirname(dirname(__FILE__));$baseDir = dirname($vendorDir);var_dump($vendorDi原创 2015-11-18 16:56:43 · 2410 阅读 · 0 评论 -
php手记-annotations
ReflectionClass::getDocComment 作用:获取文档注释 用例:<?php/** * A test class** @param foo bar* @return baz*/class TestClass { /** * This class1111 will test annotations. * * @te原创 2015-11-24 09:25:09 · 1521 阅读 · 0 评论