Press "Enter" to skip to content

1,320 Comments

  1. json
    json January 4, 2020

    大神问下,我看到7.4版本每个扩展模块下面都有个extension.stub.php文件,这个应该是用来支持ide友好提示的吧,自己写的扩展怎么生成这种文件呢

    • laruence
      laruence February 24, 2020

      一方面是为了ide, 一方面是为了自动生成php扩展的arginfo, 手动写 🙂

    • json
      json March 28, 2020

      大神,在看php的源码,使用zend_string_init函数后,之后应该使用zend_string_release函数减少引用,可是string.c 中有的地方并没有调用zend_string_release函数,有些困惑什么情况下需要调用release

  2. 在路上
    在路上 December 31, 2019

    我是路过的,顺便混个脸熟。

  3. jane
    jane December 4, 2019

    鸟哥大佬,PHP更新7.4稳定版了,yac能更新支持下吗?我更新并安装好提示版本不合适。

  4. john
    john December 3, 2019

    鸟哥麻烦问下字符串中$str{1}和$str[1]什么区别啊,我在官网上也没找到答案

    • laruence
      laruence February 24, 2020

      7.4之前没区别,7.4之后$str{1}会触发deprecated警告。也就是尽量用[]吧

  5. 444
    444 October 23, 2019

  6. LMK
    LMK September 25, 2019

    github过来的。

  7. 周雨婷
    周雨婷 September 19, 2019

    最近我们有个项目,需要生成一个在固定范围内游走的K线图,然后我们经理使用Python加上随机游走算法能解决这个问题,想请问PHP有没有相关方面的知识呢?

  8. lnto
    lnto August 30, 2019

    PHP调用webservice, 无视/etc/hosts修改,这是什么情况 ?
    gethostbynamel函数也是一样的。

  9. nan shire
    nan shire August 30, 2019

    最近我看到一个东西,叫做php文件锁的,按照说法,是高并发并且有事务的情况下,为了缓解mysql端的压力,因为事务会让mysql端有很多等待的语句要处理,所以用在php这边弄一个文件锁,请求的时候锁住,结束开锁,其中也会继续用事务,但是保证了mysql端不会有那么多事务的请求。但是这会消耗php服务器很多效率不是吗,这种做法是否可取,所以在这里问问您,想知道鸟叔您的看法。

    • 崔少云
      崔少云 March 23, 2020

      mysql也是cs模式,就算是消耗资源也是消耗mysql服务器资源。和php没有任何关系

  10. ming
    ming August 23, 2019

    我遇到一个比较诡异的问题,想向你请教一下
    我有一个php服务一直比较稳定,最近遇到php某几个进程刚接到请求,缓冲区就有“5555”内容,重启php就没问题了,过一段时间又出现,我在index.php第二行输出ob_get_contents(),就有这个内容,后来我使用ob_clean()解决了
    之后有php进程好像没有处理php逻辑就直接返回给nginx
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:07 +0800] “GET /test.php HTTP/1.1” 200 2.001 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:12 +0800] “GET /test.php HTTP/1.1” 200 2.001 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:20 +0800] “GET /test.php HTTP/1.1” 200 2.001 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:24 +0800] “GET /test.php HTTP/1.1” 200 2.002 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:25 +0800] “GET /test.php HTTP/1.1” 200 0.000 31 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    – – – – 122.14.46.103 – – [23/Aug/2019:12:45:33 +0800] “GET /test.php HTTP/1.1” 200 2.001 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36” “-” “/test.php”
    注意第五个请求
    我在test.php内部有sleep,但是有的请求直接0.000时间就返回nginx,而且没有输出内容
    test.php代码
    <?php
    sleep(1);
    $status = ob_get_status(true);
    $pid = posix_getpid();
    $line = __LINE__;
    file_put_contents('/data/var/log/game-log/ob.txt', date('Y-m-d H:i:s') . " [$pid][$line]: " .var_export($status, true) . PHP_EOL, FILE_APPEND);
    sleep(1);
    echo "123" . PHP_EOL;
    echo 'abc' . PHP_EOL;
    $string = ob_get_contents();
    if( !empty($string) )
    {
    $pid = posix_getpid();
    $line = __LINE__;
    file_put_contents('/data/var/log/game-log/ob.txt', date('Y-m-d H:i:s') . " [$pid][$line]: " .$string . PHP_EOL, FILE_APPEND);
    }
    //ob_flush();
    //flush();
    ob_end_flush();
    nginx 1.8.0
    php 7.0.16
    php升级到7.0.33也没有解决

  11. yangknkp
    yangknkp August 21, 2019

    spl_autoload_register 的第二个参数,是否抛出异常有为什么是无效的

    • yangknkp
      yangknkp August 21, 2019

      function loady($className)
      {
      echo “运行 loady\n”;
      $fileName = ‘libs’ . DIRECTORY_SEPARATOR . $className;
      if (file_exists($fileName)) {
      require_once $fileName;
      return true;
      } else {
      echo “loady 失败”;
      return false;
      }
      }
      function loadx($className)
      {
      echo “运行 loadx\n”;
      $fileName = ‘libs’ . DIRECTORY_SEPARATOR . ‘tests’ . DIRECTORY_SEPARATOR . $className;
      if (file_exists($fileName)) {
      require_once $fileName;
      return true;
      } else {
      echo “loadx 失败”;
      return false;
      }
      }
      spl_autoload_register(‘loady’,true);
      spl_autoload_register(‘loadx’,true);
      try {
      new A();
      new B();
      new TestA();
      } catch (\Exception $e) {
      print_r($e->getMessage());
      }

  12. wuliping
    wuliping August 15, 2019

    大神,我有一个想法。我认为PHP是非常不错的语言,业务代码用PHP脚本编写方便快速调整迭代,常用工具可以封装为扩展用c语言实现以提升性能。但是就有一个问题,我最近在学习如何编写PHP扩展并使用,感觉过程还是过于繁杂(可能是因为还没入门吧。。),不过如果可以简化这个流程就好了。

  13. Sean
    Sean August 12, 2019

    老哥你好,我是字节跳动的猎头Sean,这边有字节全线业务的招聘,不知道您目前有没有在看新的机会呢,十分期待您能回复我的消息,希望能和您进一步沟通[可怜][可怜]

    • Sean.bao
      Sean.bao September 17, 2019

      你想招鸟哥?

  14. 陈生
    陈生 July 19, 2019

    世界那么大,我想来看看haokan112.com

  15. 留芳网
    留芳网 July 13, 2019

    看来是大神无疑了。漏洞名称
    Redis 基线合规检测
    这个漏洞如何修复啊。

  16. 啊啊
    啊啊 July 5, 2019

    这zend opcache 生成的bin文件有着源码保护的用处,我想知道这种字节码是否可以还原PHP代码,等待你的回复。谢谢

  17. Daniel Cheung
    Daniel Cheung July 2, 2019

    鸟哥,您好,请教一个问题:
    今天做python3的AES采用 ECB 模式,加密key使用16位key,发现加密出来的数据二进制流和直接使用php7中的 openssl_encrypt 加密出来的二进制流最后16个字节不一样,python3采用的是用0x00进行长度补齐,openssl_encrypt 使用的是 OPENSSL_RAW_DATA 方式,不知道 openssl_encrypt 是如何补码的?是否是由于补码方式不一样导致的加密结果最后16个字节不一样。
    谢谢!

  18. 1
    1 June 28, 2019

    zend opcache 的字节码能被反编译吗?

  19. Fireworks
    Fireworks June 20, 2019

    鸟哥,请问你首页的文章截断是怎么做的?我做了一个截断html字符串的,然后我再去补全html标签,但是这样会遇到一个尴尬的问题,例如 URL 地址,或者其他需要完整的字就会断掉。

    • yangfan
      yangfan June 25, 2019

      你可以试试 mb_substr 可能会有惊喜等着你 mb_ 函数系列

      • Fireworks
        Fireworks July 1, 2019

        谢谢 我去试一下

  20. FrPHP-风
    FrPHP-风 June 4, 2019

    您好,久仰大名。我遇到问题了,抱歉,可能会占用您的宝贵时间,但我实在经过多次探索未能解决这个问题,困扰我好久了。
    我是php程序员,最近开发一个项目,发现同一个系统,访问不同页面会出现两个session_id,我翻遍了文档,并没有找到解决方案。下面我说下具体出现的原因:
    项目要实现用户在浏览器打开情况下,就一直保持登录,除非关闭浏览器。
    我想通过不断刷新session来保持session一直正常访问。
    1、我在主框架控制器入口写了函数如下:
    function start_session($expire = 0) {
    if ($expire == 0) {
    $expire = ini_get(‘session.gc_maxlifetime’);
    } else {
    ini_set(‘session.gc_maxlifetime’, $expire);
    }
    $session_cache_dir = APP_PATH.’cache/tmp’;//本地可查看session记录
    if(!file_exists($session_cache_dir)){
    mkdir($session_cache_dir,0777,true);
    }
    ini_set(‘session.save_path’,$session_cache_dir);
    ini_set(“session.cookie_httponly”, 1);
    if (!isset($_COOKIE[‘PHPSESSID’])) {
    session_set_cookie_params($expire);
    session_start();
    } else {
    session_start();
    setcookie(session_name(), session_id(), time() + $expire);
    }
    }
    每次访问都执行一遍:start_session(60);
    2、首次进入页面登录,我保存用户信息用$_SESSION[‘member’],此时出现一个session_id
    cache/tmp能够查看到一个session
    这一套流程下来都没什么问题,访问各个页面都只有一个session,没有任何问题
    3、我在当前页面控制器里写入一个函数:
    //更新session的过期时间
    function update_session_maxlifetime(){
    $cache_time = $cache_time==0 ? 600 : $cache_time;
    setcookie(session_name(), session_id(), time() + $cache_time);
    JsonReturn(session_id().’-‘.$_COOKIE[session_name()].’更新session成功!’);
    }
    //我用ajax每隔几秒访问这个函数,以希望保持session是最新的
    4、这个方法确实能让当前页面不会掉session,但是当我点击当前页面其他栏目链接的时候,会提示重新登录,而且session_id不同,我刷新当前页面也不会提示登录,F12/查看cookie发现PHPSESSID同时存在两个!本地tmp中能看出来,一个session_id的记录是空的,而当前页面的session_id是有数据的!
    5、我做过如下猜测和尝试:
    设置ini_set(‘session.gc_maxlifetime’, 86400);//一天
    本地cookie session_set_cookie_params(60);//60秒
    我觉得应该是服务器先过期,导致cookie未过期,实际上session_id过期了。
    但,并不是,上面问题依旧存在。
    写的内容有点多,希望您能帮我解决一下,非常感谢!

    • ius
      ius August 10, 2019

      你这个好像进不去哦,还是说只有大屏首页

  21. 聚网志成
    聚网志成 May 15, 2019

    我看了不少网站,博主的网站写的不错,收藏了哈,经常来看,有空我们一起做个友qing链jie呗,我的是:www.jw61.com 深圳网站建设,等着你哦。

  22. 小夏阿姨
    小夏阿姨 April 23, 2019

    想请教鸟哥一个关于yaf的问题
    打算基于swoole+yaf实现一个api应用,用rsa对所传输数据进行加密并以raw发送给服务端,服务端取出请求中的raw后尝试对其解密及验签等操作,当解密及验签不成功时,直接响应错误给客户端。
    方案有三:
    1 在Yaf\Plugin_Abstract::dispatchLoopStartup 前某个时刻进行解密验签
    2 controller 继承 Yaf\Controller_Abstract,在init方法中进行解密验签
    3 在入口中 application::run 之前 进行解密验签
    如果用第3个方案就用不了yaf提供的response来达到所有响应统一由一个地方执行了,所以放弃此方案
    如果是前两个方案,问题来了,swoole是禁止在程序中用exit 或 die之类退出的,我们需要怎么跳过controller中的流程而直接响应错误。
    除了上面3种方案是否还有别的方案

    • test
      test April 24, 2019

      config:
      application.dispatcher.throwException=1
      application.dispatcher.catchException = 1
      then thron Yaf\Exception where you want to response app error
      yaf will catch it by ErrorController::errorAction

    • test
      test April 24, 2019

      config:
      application.dispatcher.throwException=1
      application.dispatcher.catchException = 1
      then throw Yaf\Exception where you want to response app error
      yaf will catch it by ErrorController::errorAction

  23. lucky
    lucky April 19, 2019

    不知道你发现没,在php.ini里设置session.cookie_httponly = On 不管在PHP哪一个版本,都是不生效的,设置重启之后,在浏览器里document.cookie一样可以获取到cookie的值.这算不算是一个bug呢?

    • gao
      gao May 5, 2019

      那是js获取 php管不了大哥

      • rory
        rory July 8, 2019

        那这个有设定是什么作用

  24. LeiGong
    LeiGong April 17, 2019

    是时候放点新技术出来了….
    尝点新鲜的~~

  25. jwcom
    jwcom April 16, 2019

    php7.3 里 skel 怎么建自定义的函数,用原来的方式好象不行啊. 系统默认产生的能用…. 不知道有没有相关资源给点~

  26. liulixin
    liulixin April 8, 2019

    遇到的一个问题。用file_get_contents函数去获取图片链接中的图片数据,执行时file_get_contents函数会将一些链接中的&符号自动转化成&符号,导致链接不存在获取数据失败,查了一些资料也没找出什么原因,所以想请教请教鸟哥这是什么问题?

  27. lin ming
    lin ming April 1, 2019

    yaf.lowcase_path 已经开启,建了一个app模块,可以总是提示找不到文件,错误信息如下:/data/cpfp/public/../application/modules/App/controllers/Sdk.php,目录app在项目中是小写。

  28. acewee
    acewee March 21, 2019

    最近有个业务有大量的请求第三方接口,然后想起curl可以并行请求,网上看了一些例子及使用的问题,例子少,而且说可能会导致cpu负载,自己不清楚它底层怎么实现得,不敢用,问下鸟哥curl值不值得用。

    • acewee
      acewee March 21, 2019

      最后面是问curl的并行值不值用

  29. singo
    singo March 14, 2019

    yar 在2.0.5版本里无法使用
    我调用老版本的php5.6的正常
    新安装了php7.3版本之后,一直报这个错误
    Uncaught Yar_Client_Transport_Exception: server responsed non-200 code ‘400’
    我用yar_debug.php调试又是可以的,Yar_Client这个是不是有些问题
    yar_debug.php调试可以上传到服务器,但是参数丢了,这个调试程序是不是也有问题?
    yar2.0.5,返回时,hostname变成了Hostname: \x01\,实际上应该还是Hostname: 10.188.0.154
    这个在yar1.2.5里是正确的

    • gojianbo
      gojianbo March 25, 2019

      我是win10 x64 apache 2.4.37 PHP 7.3也出现这个错误 , PHP 7.2可以 ,你的问题解决了吗?

  30. Freelance
    Freelance March 11, 2019

    鸟哥,PHP中文手册,关于Closure为何一直没有更新呢?新增的方法一直没有,至于其他是否还有缺,未查。

  31. Lee Chan
    Lee Chan March 9, 2019

    可以模仿你博客的ui吗

  32. E语云博客
    E语云博客 March 8, 2019

    刚开始学习php,前来膜拜大佬~学成后必来回踩

  33. adang
    adang March 6, 2019

    1.php curl 能实现像redis一样的长连接 么
    2.php get post 有没有好用长连接库

  34. Nervebing
    Nervebing March 6, 2019

    关注鸟哥很久了,鸟哥下次啥时候来上海呀

  35. 爱开源
    爱开源 March 5, 2019

    博客速度变快很多!!!
    是不是有什么黑科技? 求鸟哥分享.

  36. star
    star March 4, 2019

    ini_set(‘session.cookie_httponly’, ‘on’);
    session_start();
    setcookie(‘mycookie’, ‘hello world’);
    为什么在控制台通过document.cookie 还是能获取cookie的值?

  37. star
    star March 4, 2019

    为什么在控制台通过document.cookie 还是能获取cookie的值?

  38. zhang
    zhang March 1, 2019

    前来膜拜

  39. peng
    peng March 1, 2019

    沾沾喜气

    • 小夏阿姨
      小夏阿姨 April 23, 2019

      php 文档中是写着有 7个
      其中有一个 preResponse 我是没触发过

  40. ming
    ming February 25, 2019

    都是哈希??

  41. lee
    lee February 14, 2019

    请问 刚学php C扩展,只会简单的hello world例子,源码看不太懂,有什么好的学习的方法吗

  42. 222
    222 February 11, 2019

    123

  43. cj
    cj February 11, 2019

    alert(‘very nb’)

  44. zhang
    zhang January 31, 2019

    膜拜大神,留名

  45. coolbreeze
    coolbreeze January 28, 2019

    大佬我问下 php中的IMAP邮件扩展中 imap_search方法传入的类型 不支持草稿状态(Draft) 已发送状态(sentmail)么?找了找文档都没有这两种类型 求解答!!!

  46. vimtutor
    vimtutor January 26, 2019

    大佬博客换样式啦,这个样式年轻多了。感谢大佬提供这么多高质量的php文章

  47. CVS Near Me
    CVS Near Me January 3, 2019

    Thank you for adding Good content here..
    I liked your information..

  48. 0x00
    0x00 January 3, 2019

    终于换前端了

  49. jack
    jack December 27, 2018

    /home/zrj/Downloads/soft/yaf-3.0.7/yaf_session.c: In function ‘yaf_session_instance’:
    /home/zrj/Downloads/soft/yaf-3.0.7/yaf_session.c:97:31: error: ‘ZEND_WRONG_PROPERTY_OFFSET’ undeclared (first use in this function); did you mean ‘IS_WRONG_PROPERTY_OFFSET’?
    if (property_info->offset != ZEND_WRONG_PROPERTY_OFFSET) {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~
    IS_WRONG_PROPERTY_OFFSET
    /home/zrj/Downloads/soft/yaf-3.0.7/yaf_session.c:97:31: note: each undeclared identifier is reported only once for each function it appears in
    Makefile:253: recipe for target ‘yaf_session.lo’ failed
    make: *** [yaf_session.lo] Error 1

  50. wangdeyi
    wangdeyi December 14, 2018

    PHP7.3安装yaf-3.0.7报错:
    /root/yaf-3.0.7/yaf_session.c: In function ‘yaf_session_instance’:
    /root/yaf-3.0.7/yaf_session.c:97:31: error: ‘ZEND_WRONG_PROPERTY_OFFSET’ undeclared (first use in this function)
    if (property_info->offset != ZEND_WRONG_PROPERTY_OFFSET) {
    ^
    /root/yaf-3.0.7/yaf_session.c:97:31: note: each undeclared identifier is reported only once for each function it appears in
    make: *** [yaf_session.lo] Error 1

  51. 金江
    金江 December 13, 2018

    鸟哥, 我想问个问题: php适合做微服务吗?具体怎么做呢?和java比较呢?

  52. Scarecrow
    Scarecrow December 4, 2018

    鸟哥你好:
    请问PHP7内核中怎么获取类常量:
    声明:
    zend_declare_class_constant_double(ptr,”love”,4,999.0);
    获取 :
    double t;
    zval *p;
    zend_string *a;
    zend_class_entry *ptr;
    ptr = Z_OBJCE_P(getThis());
    a=zend_string_init(“love”, 4, 0);
    p = zend_get_constant_ex(a, ptr,getThis()->u2.access_flags);
    t = Z_DVAL_P(p);
    php_printf(“Test:%f”,t);
    这时候p始终返回NULL,拿不到?这是为什么呢?或者是我的方法用错了?

  53. lee
    lee December 1, 2018

    鸟哥你好,我压测你的网站失败了,我想问问你的这个网站在安全方面都是做那些呢?

  54. baimengke
    baimengke November 15, 2018

    鸟哥,问您一个问题,最近和同事讨论遇到的,WholeResponseRating::instance()->getRating($landlordResponse)这样写能通过,
    (WholeResponseRating::instance())->getRating($landlordResponse)这么写就会报错
    说是语法错误吧但是(new class)->method()这样写就没问题,您能解释解释吗

  55. dennlian
    dennlian November 7, 2018

    php 7.2 windows版本加载yaconf报错

  56. miracle7
    miracle7 November 5, 2018

    您好,我想问下怎么在自己写的扩展中调用openssl_encrypt和openssl_decrypt进行加密解密处理,想再次封装下openssl_encrypt

  57. 李
    October 23, 2018

    [2018-10-23 11:23:54 *2366.2] ERROR zm_deactivate_swoole (ERROR 503): Fatal error: Uncaught Yaf_Exception_StartupError: Only one application can be initialized in /Users/dxm/PhpstormProjects/yaf/server/http_server.php:42
    Stack trace:
    #0 /Users/dxm/PhpstormProjects/yaf/server/http_server.php(42): Yaf_Application->__construct(‘/Users/dxm/Phps…’)
    #1 {main}
    thrown in /Users/dxm/PhpstormProjects/yaf/server/http_server.php on line 42.
    [2018-10-23 11:23:54 $2363.0] WARNING swManager_check_exit_status: worker#2 abnormal exit, status=255, signal=0
    使用swoole框架的swoole_http_server与yaf结合的时候会出现这个错误
    $http->on(‘WorkerStart’,function($server,$worker_id){
    define(‘APPLICATION_PATH’, dirname(dirname(__FILE__)));
    include APPLICATION_PATH.”/vendor/autoload.php”;
    });
    $http->on(‘request’,function($request,$response) use ($http){
    echo “jsdjfjsd”;
    if(isset($request->server)){
    foreach($request->server as $k=>$v){
    $_SERVER[strtoupper($k)]=$v;
    }
    }
    if(isset($request->header)){
    foreach($request->header as $k=>$v){
    $_SERVER[strtoupper($k)]=$v;
    }
    }
    if(isset($request->get)){
    foreach($request->get as $k=>$v){
    $_GET[$k]=$v;
    }
    }
    if(isset($request->post)){
    foreach($request->post as $k=>$v){
    $_POST[$k]=$v;
    }
    }
    ob_start();
    $application=new Yaf_Application(APPLICATION_PATH.’/conf/application.ini’);
    $application->bootstrap()->run();
    $application=null;
    var_dump($application);
    echo “123”;
    $res=ob_get_contents();
    ob_end_clean();
    $response->end($res);
    // $http->close($request->fd);
    });
    这是swoole_http_sever中的配置

  58. Kenneth Gao
    Kenneth Gao October 20, 2018

    鸟哥,你好!
    请问:
    set_time_limit(30);
    ini_set(‘max_execution_time’, 30);
    这两者的区别是什么?

  59. 罗少成
    罗少成 October 19, 2018

    鸟哥你好,最近在开发的时候遇到了一个问题.就是说团队在使用数组的key需要是字符串的数字,因为项目的历史遗留问题.在下次迭代会解决这个问题.但是好奇的是,为什么php最后一定要把能转为int的key给转化了?
    真诚请教

  60. Lee Hao
    Lee Hao October 17, 2018

    yaf自动加载和smarty的类名冲突 使用yaf集成smarty的时候,在smarty的某个类中需要加载Smarty_Template_Compiled类,这是yaf的Loader就会自动解析加载路径为/application/library/Smarty/Template/Compiled.php,但我的类实际路径是/application/library/Smarty/sysplugins/Smarty_Template_Compiled.php 我该怎么做才能避免呀?

    • 李浩
      李浩 October 17, 2018

      问题解决,在入口文件index.php的
      $application = new Yaf\Application( APPLICATION_PATH . “/conf/application.ini”);
      之前使用
      include APPLICATION_PATH.’/vendor/autoload.php’;
      这样就避免了使用框架的Loder机制加载文件

  61. haier_brother
    haier_brother October 12, 2018

    alert(‘xss’)

  62. tony
    tony October 2, 2018

    终于换了个主题,比之前的好看多了!

  63. 付家乐
    付家乐 September 25, 2018

    鸟哥我模仿了您的博客,您不会生气吧?

  64. xrj
    xrj September 19, 2018

    希望鸟哥能坚持搞yar这rpc 感激不尽!!

  65. owenliang
    owenliang September 11, 2018

    鸟哥这是更新博客主题了啊

  66. hz
    hz September 6, 2018

    请问php7性能和java比怎么样?下一个版本计划是否依然以提升性能为核心呢?还有有朝一日php可以开发c/s客户端吗?

  67. Bill
    Bill September 6, 2018

    jit 现在的进展情况是怎样的?了解一下.

  68. Ruizhao
    Ruizhao September 3, 2018

    你好鸟哥,请问下目前PHP在微服务这一块上有什么实践吗

  69. 光年之外
    光年之外 August 30, 2018

    风哥, PHP new class 不赋值与 new class 赋值,在内存上有什么区别?
    new class 不赋值是创建了内存空间,由于未有地址指向任何变量,gc 回收了,还是 new class 不赋值根本没有创建内存空间。
    测试:想到用 memory_get_usage 测试,由于这个函数只支持由 emalloc 分配的变量, 测试未能成功
    提问:在 php 相关网站与群提问也没人回答或给出合适的答案
    风哥,能帮助指点下吗?

  70. Situs QQ Online
    Situs QQ Online August 12, 2018

    a blog that is very helpful for us to make something the web we want to achieve, thank you for creating this blog so readers can know how.

    • bettare
      bettare August 27, 2018

      you are welcome

  71. Evens
    Evens August 10, 2018

    并不是Bug , 而是array_search() 时并没有指定类型(php本身也不需要定义类型,但是类型是存在的)
    当数组中第一个元素是0时 ,被对比的参数也会被转换成数值。
    可以参考 array_search 第三个参数 http://php.net/manual/zh/function.array-search.php

  72. 孟羽
    孟羽 August 10, 2018

    Yaf 的手冊爲什麽無法訪問了?

  73. 宇堃
    宇堃 August 1, 2018

    您好鸟哥,前端时间有看过您对php变量的深入介绍,有一个基本的概念。
    今天发现一个奇怪的现象,是和变量引用有关。
    代码如下:
    $parameters = [[[“id=470”]]];
    $test = &$conditions[0];
    $model = Model::findFirst($parameters);
    去掉第二行引用赋值的代码,一切正常,加上之后就不对了。我试过用===等方式比较$parameters有没有变化,都没有发现问题,想知道,在引用赋值之后数组到底发生了怎样的变化。
    注: 这里用的是phalcon框架,一个简单的模型查询。

  74. lio
    lio July 17, 2018

    PHP 的掌舵人是谁呀?
    突然发现, php,世界上最好的编程语言, 没怎么听到过创始人是谁,查了下资料, php7 跟三个创始人都没啥关系? php 现在是怎么个进化方式呢?

  75. shenhy
    shenhy July 10, 2018

    鸟哥,你好,咨询个问题。
    php的输出函数,echo,print还是其他,输出5.00这样的数会省略掉后面的0,直接输出整数5,若要强制输出5.00,则使用number_format格式化后就可以输出,但输出的是字符串类型的”5.00″(使用gettype查看的),有什么方式可以直接输出5.00,并且为浮点数。

    • veike
      veike August 12, 2018

      printf(“%.2f”,5.00);

    • May丶泡泡
      May丶泡泡 August 16, 2018

      /**
      * 格式金额###
      * @param $price
      * @return string
      */
      function price_format($price,$len=2)
      {
      $str = “%.”.$len.”f”;
      return sprintf($str, $price);
      }

  76. 木来
    木来 June 27, 2018

    您好,过来看一下您的网站。
    我的网站是诚意印象个人博客。

  77. yonbinblue
    yonbinblue June 15, 2018

    鸟哥你好,我最近遇到一个问题:php的copy函数复制一个4.41GB的视频文件(mp4)的时候,函数执行完成的时候,文件只有422MB。请问这个是什么原因?php版本是5.6.27

  78. weimiyu
    weimiyu June 8, 2018

    define(“APP_PATH”, realpath(dirname(__FILE__) . ‘/../’)); /* 指向public的上一级 */
    $app = new Yaf\Application(APP_PATH . “/config/application.ini”);
    上述new的时候会发生502错误,
    查看了错误日志写的是:
    2018/06/08 16:20:30 [error] 9489#0: *235 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 192.168.33.1, server: local.yaf.cn, request: “GET / HTTP/1.1”, upstream: “fastcgi://127.0.0.1:9000”, host: “local.yaf.cn”
    但是已经将
    php-fpm.conf里的配置改成了
    pm = dynamic
    pm.max_children = 60
    pm.start_servers = 30
    pm.min_spare_servers = 30
    pm.max_spare_servers = 60
    request_terminate_timeout = 100
    request_slowlog_timeout = 0
    slowlog = var/log/slow.log
    我觉得最大子进程已经开到很大了,同样的环境下跑lumen和laravel可以正常访问,但就是yaf在这个centos虚拟机里出现了502这个问题,诚心请教在centos的虚拟机里面为什么会出现这个502问题

  79. ethan
    ethan June 7, 2018

    鸟哥,能不能写一些有关 Domain-Driver-Design in php的讲解,PHP在代码结构设计这块的书籍是在是比较少,现在阅读java的DDD,看起来没有php那么直观,也会导致理解会有偏差!!

  80. 牟志强
    牟志强 May 21, 2018

    <?php
    一个php bug?
    echo strtotime('1990-05-24 00:00:00')."”;
    echo strtotime(‘1990-05-24’).””;
    $date = DateTime::createFromFormat(‘Y-m-d H:i:s’, ‘1990-05-24 00:00:00’);
    echo $date->getTimestamp();
    //以上输出结果都是 643474800
    而使用在线工具计算出来的是643478400
    ?>

  81. demo
    demo May 20, 2018

    alert(123123)

  82. enoch
    enoch May 20, 2018

    鸟哥,php.net那个邮箱,发不了吗。试着发了两封都给退回来了

  83. randal
    randal May 16, 2018

    @lonely 感谢回答 emmm 那有什么办法可以避免么? 自己写foreach么?用全等?

  84. Braxtonpugh
    Braxtonpugh May 14, 2018

    Hello guys,
    It covers the institutions of law creation and application, law in American government, American legal culture and the legal profession, American criminal and civil justice, and civil rights. Clearly written, the book has been widely used in both undergraduate and graduate courses as an introduction to the legal system.
    https://goo.gl/p5iRnA

  85. ThomasUnupe
    ThomasUnupe May 13, 2018

    По мнению ученых, грибок стопы — это одно из наиболее распространённых болезней. Препарат Экзолоцин, экзолоцин входит в список лучших средств, что излечивают от него и сопутствующих проблем за несколько недель. Неприятные симптомы, отшелушивание кожи пропадут очень скоро и безопасным образом, не оставив каких-то следов. Крем Экзолоцин оптимально блокирует воздействие вредоносных бактерий, действует максимально быстро и используется в качестве профилактики. Мазь от грибка может быть нанесен даже сверху косметического препарата, и он всё равно будет проявлять своё целебную силу. А еще препарат Экзолоцин обладает реальным сертификат.
    В структуру мази входит 35 компонентов, в чем вы можете прочитать в сопровождающих документах. Из-за приоритетного природного строения крем Экзолоцин без побочных эффектов, а противопоказанием к употреблению является только персональная непереносимость компонентов средства.
    Крем от грибка может вылечить большинство проблем за 1-2 упаковки. Если у вас замечается шелушение; зуд; появление корост; хрупкие желтого оттенка ногти на ногах; повышенная потливость ног; неприятный аромат – один или множество таких симптомов – то обязательно обратитесь к врачу, чтобы сделать анализы и обрести рекомендации к лечению. Вещества, которые находятся в креме, сразу же обеспечивают исцеление. Они активно уничтожают грибы за считанные часы, при том способствуют восстановлению дермы и устранению различных негативных последствий: неприятного амбре, потливости и остальных. Всего через несколько недель вы освободитесь от всего списка грибковых проблем. Восстановится иммунитет, и повторное заражение микроорганизмами будет маловероятным.

  86. ThomasUnupe
    ThomasUnupe May 13, 2018

    По статистике, грибок стопы — это одно из самых распространённых заболеваний. Препарат Экзолоцин, гель exolocin экзолоцин включен в ряд лучших средств, которые избавляют от него и возможных последствий за короткий промежуток времени. Нежелательные симптомы, зуд проходят очень скоро и безопасным образом, не оставляя каких-нибудь следов. Крем Экзолоцин оптимально блокирует активность вредоносных бактерий, действует по максимуму быстро и используется в качестве профилактики. Крем от грибка можно наносить даже сверху косметического лака, и он по прежнему будет оказывать своё лечебное воздействие. А еще препарат Экзолоцин обладает реальным сертификат.
    В структуру Экзолоцина входит 35 составляющих, в чем вы можете прочитать в сопровождающих документах. Из-за исключительно природного состава крем Экзолоцин не имеет побочки, а противопоказанием к использованию является только индивидуальная непереносимость компонентов средства.
    Крем от грибка избавляет от большинства проблем за 1-2 упаковки. Если у вас замечается шелушение; раздражение кожи; образование корост; хрупкие желтого оттенка ногтевые пластины; избыточная потливость ног; неприятный амбре – один или несколько данных симптомов – то обязательно обратитесь к докторам, чтобы сдать анализы и обрести рекомендации к лечению. Компоненты, которые находятся в креме, сразу же начинают свою работу. Они самым активным образом уничтожают грибок за считанные дни, при этом способствуют обновлению дермы и устранению различных негативных последствий: неприятного запаха, пота и остальных. Всего через непродолжительное время вы станете свободны от всего спектра грибковых проблем. Усилится иммунитет, и повторное заражение микроорганизмами будет маловероятным.

  87. lonely
    lonely May 10, 2018

    @randal
    导致你这问题是因为php会将根据数组元素将 is_del 转成对应数据类型在进行对比 is_del 转成整形为0 所以存在 某种程度上来说这算是弱类型语言的一个坑.
    $arr = [0, ’22’, ‘test’, 33, ‘dsa’];
    var_dump(in_array(‘is_del’, $arr));

  88. lonely
    lonely May 10, 2018

    为什么YAF在windows下同时只能处理一个请求
    如下代码:环境PHP7.2默认配置
    $application = new Yaf_Application([“application”=>array(
    “directory”=>”/application”,
    )]);
    if(@$_GET[‘a’])sleep(5);
    echo “adsfa”;
    打开两浏览器,一个访问?a=1 另个不带参数
    两个请求都被阻塞了…

  89. randal
    randal May 9, 2018

    还是我
    上面的留言补充下
    刚突发奇想试了下
    in_array这个函数也是一样的问题
    $arr = [0, ’22’, ‘test’, 33, ‘dsa’];
    var_dump(in_array(‘is_del’, $arr));
    /code/local/test.php:154:boolean true
    这是个bug还是array函数设计本身就是这样的啊’
    [狂吐血]

  90. randal
    randal May 9, 2018

    鸟哥
    问个问题
    array_search这个函数

    $arr = [‘0’, ‘ds12’, ‘is_del’, ‘dsadas’, ’12’, ’12’, ’22’];
    var_dump(array_search(‘is_del’, $arr));
    返回
    /code/local/test.php:154:int 2
    但是

    $arr = [0, ‘ds12’, ‘is_del’, ‘dsadas’, 12, ’12’, ’22’];
    /code/local/test.php:154:int 0
    然后 如果0不在数组里面的时候
    $arr = [‘ds12’, ‘is_del’, ‘dsadas’, 12, ’12’, ’22’];
    /code/local/test.php:154:int 1
    或者0值为字符串的时候
    $arr = [‘0’, ‘ds12’, ‘is_del’, ‘dsadas’, 12, ’12’, ’22’];
    /code/local/test.php:154:int 2
    这个问题是bug还是array_search本身就是这么设计的啊- –
    今天写业务的时候突然发现array_search_不起作用- –

  91. Justinbiz
    Justinbiz April 13, 2018

    Hi!
    You can get $ 16 on your PayPal right now. Nothing complicated.
    Just look at the money you have in a minute.
    This is a new offer from Bitcoin =) This page

  92. lianglikang
    lianglikang April 2, 2018

    鸟哥,我在本地系统开发了两个项目一个是前端api的项目,域名是api.cn,另一个项目是缓存系统cache.cn主要是对api返回redis数据的,但是我在api.cn无法通过http请求到cache.cn对应的modules层下的控制器,我通过日志发现每次请求到cache.cn的入口文件index.php都会自动请求结束.不是curl的请求超时原因.日志能写到index.php的new Yaf_Application()前,但是到实例后就没日志文件了,所以我想是不是Yaf_Application类里是否有限制呢。两个项目都是简单路由的.

  93. 宁次君
    宁次君 April 1, 2018

    踩踩

  94. Akav
    Akav March 26, 2018

    鸟哥,你好。
    关于php session,最近fpm监控中遇到一个奇怪的现象,想在全面使用memcache之前先搞清楚。所以请教一下。
    我服务器上跑的是php7.1,每过几天,总会出现fpm进程数量升高的情况,检查发现,有一部分fpm进程的start time在24甚至很长时间以前,当前状态是sleep,在/proc/进程id/fd 里面,有一个指向php session缓存文件的软链。
    注:由于业务需要,我们设置的session过期时间为gc_maxlifetime是48小时。不知道有没有关系。
    谢谢鸟哥。

  95. Anonymous
    Anonymous March 16, 2018

    鸟哥 帮忙看一下PHP继承的问题
    class A {
    private function foo() {
    echo ‘a’;
    }
    public function test() {
    $this->foo();
    }
    }
    class B extends A {
    public function foo() {
    echo “b”;
    }
    }
    $b = new B();
    $b->test();
    输出a
    class A {
    protected function foo() {
    echo ‘a’;
    }
    public function test() {
    $this->foo();
    }
    }
    class B extends A {
    public function foo() {
    echo “b”;
    }
    }
    $b = new B();
    $b->test();
    输出b

  96. Alistamyan44
    Alistamyan44 February 25, 2018

    п»ї

  97. Monserhe14
    Monserhe14 February 5, 2018

    п»ї

  98. 子木
    子木 February 2, 2018

    鸟哥哥,我才接触laravel框架,学了一个星期,感觉好强大,文档上面介绍的又不是太清楚,能不能推荐本关于laravel框架的书

  99. WangKane
    WangKane December 26, 2017

    Hi Laruence,最近遇到一个问题,在使用eclipse 跑phpunit的时候,使用var_dump进行打印,但是打印出来的结果不是:
    “D:\xampp\htdocs\test\index.php:6:
    string(10) “2323232323””这样的,有部分人电脑是没问题,打印的结果是正常的数字,没有其他的嘛,首先这个不是中文乱码,,我不知道怎么解决

  100. xqkeji
    xqkeji December 14, 2017

    请问,PHP内核里,能定义trait吗?
    想在内核里定义trait,然后再到php环境下使用。

  101. IT乐园
    IT乐园 December 11, 2017

    鸟哥好久不更新博客啦

  102. chen
    chen November 21, 2017

    高薪招聘程序员:精通PHP/MYSQL/Nodejs,可在网上办公,招聘QQ7399479

  103. white li
    white li November 17, 2017

    Hi, 鸟哥,写了一个返回数组的PHP扩展,php version:5.5.22
    PHP_FUNCTION(test_array)
    {
    if (zend_parse_parameters_none() == FAILURE) {
    return;
    }
    char *s1 = “Hello “;
    char *s2 = “World! “;
    size_t t1;
    size_t t2;
    t1 = strlen(s1);
    t2 = strlen(s2);
    zval *new_array;
    MAKE_STD_ZVAL(new_array);
    array_init(new_array);
    add_index_stringl(new_array, 0, s1, t1, 0);
    add_index_stringl(new_array, 1, s2, t2, 0);
    RETURN_ZVAL(new_array, 0, 1);
    }
    编译执行后,运行代码:var_dump(test_array());
    输出:
    array(2) {
    [0]=>
    string(6) “Hello ”
    [1]=>
    string(7) “World! ”
    }
    段错误
    为什么会输出段错误呢?

  104. hedonghong
    hedonghong November 5, 2017

    鸟哥,我想了解下libevent,libev,eio,php进程信号处理等,网上资料好少,有没有推荐的,我该如何理解和学习这些呢?

  105. VladimerIdems
    VladimerIdems October 23, 2017

    variant3

  106. ChrisMig
    ChrisMig October 17, 2017

    test soft

  107. Zemmmyg
    Zemmmyg September 17, 2017

    Numerology names for date of birth July 14 birthday numerology Numerology number 2 date of birth April 17 birthday numerology Numerology birth date number 24 September 10 birthday numerology Birthday indian numerology Numerology 11 personality traits
    http://numerologyforbirthdate.gdn

  108. Ucan
    Ucan September 8, 2017

    提交一下bug,http://pecl.php.net/bugs/search.php?cmd=display&status=Open&package_name[]=yaf,鸟哥的yaf官方文档提交bug页面404了,发现yaf_response类存在bug,想详细反应下

  109. zhulei
    zhulei September 7, 2017

    Hi,鸟哥, 请教一个问题, opcache模块加载报错: “PHP Warning: Zend OPcache: opcache.huge_code_pages has no affect as huge page is not supported in Unknown on line 0” 详见截图 http://p2.qhimg.com/t01a48712070f59f8b1.jpg, 请问是什么原因呢? 我已经按常规的设置了sysctl 谢谢!

  110. ejzhang
    ejzhang August 29, 2017

    抱歉再打扰一下,我看PHP编译选项里有ICU支持
    dnl As long as intl is not shared we can have ICU support
    if test “$PHP_INTL” = “yes” && test “$PHP_INTL_SHARED” != “yes”; then
    other_flags=”$other_flags -DSQLITE_ENABLE_ICU=1″
    fi
    请问如何关闭PHP_INTL_SHARED?configure –help中没找到,谢谢!

  111. ejzhang
    ejzhang August 25, 2017

    鸟哥,抱歉打扰了!我想用PHP实现SQLite全文检索(FTS3/FTS4),但是不知道如何启用ICU分词器,请问PHP的默认SQLite扩展是否支持ICU分词器,如果支持如何启用?是否加载libsqliteicu.dll即可?我在网上找不到相关信息,麻烦了,谢谢!

  112. xinroom
    xinroom August 21, 2017

    你好,你也用360wzws啊。

  113. baron
    baron August 16, 2017

    鸟哥,最近我在学习phalcon这个框架,在学习的过程中,遇到一个关于自动加载的问题。phalcon带了自动加载方式,与此相对应的就是composer。我可能有些强迫症,觉得他们是否能够合二为一,或者说自动加载东西完全依赖于phalcon。您的技术视野比我高很多,请给我点启示,谢谢!

  114. rt
    rt August 8, 2017

    Ο Θεός μπορεί να αυξήσει την κρυπτογράφηση; opcode σύγχυση.Αυτό το πολύ ζήτηση χρειάζεται για μένα.

  115. fly
    fly August 6, 2017

    看了你的文章我更加相信php是最好的开发语言 没有之一 哈哈哈

  116. lucasho
    lucasho July 31, 2017

    鸟哥,你的邮件地址发不通邮件啊~~~有没有其它的

  117. le
    le July 23, 2017

    你好鸟哥,对于刚开始学习PHP的小白,请您给点建议。谢谢

  118. jackZer
    jackZer July 16, 2017

    Your information is kept in the strictest of confidence.
    Hobden, Steve Miller, Stephen A.
    You can read over ten million scientific documents on SpringerLink.
    kamagra100mgoraljelly.today

  119. itlong
    itlong July 11, 2017

    cli模式:
    现在让我们变更下我们的运行方式:
    例 9.3.
    $ php request.php “request_uir=/index/hello”
    这里有笔误吧?
    应是:$ php request.php “request_uri=/index/hello”

  120. Dryslwwek
    Dryslwwek July 4, 2017

    hhhhhhbbbxbxcv – google.com google.com – hjgjasdfkjwieururu

  121. Dautndwek
    Dautndwek July 2, 2017

    hahgsgdnna – google.com google.com – hywyywkkkkkkzzzzsssss

  122. 不负好时光
    不负好时光 June 23, 2017

    左手代码,右手撸

  123. Johnnieinjem
    Johnnieinjem June 19, 2017

    уголовно процессуальное право уголовно процессуальный закон
    вычисление интегралов онлайн с решением
    Delete this!
    Удали это!

  124. yinli
    yinli June 18, 2017

    大神,您好!请教一个问题,我在linux下,有两个yaf项目,配置了两个域名,可是在浏览器打开时,却都指向了第一个域名的yaf内容。而如果在第二项目中public的index 是html文件 就能正确输出,如果是index.php就指向了另外一个yaf项目的内容。求解?

  125. liux-q
    liux-q June 15, 2017

    鸟哥你好,最近在项目中升级了php7,在项目中用到了session_set_save_handler 将session存储方式改为memcache,但是session写不进去,不走write方法,同样的代码 放在php5.6中就可以写入memcache ,请问鸟哥能给指点一下吗。。

  126. ClaytonEneta
    ClaytonEneta May 31, 2017

    Can anyone assist me to with a minor query.
    Half a yr in the past, I was identified as having a candida fungus
    I want to look at several eating plan against Candida albicans.
    On the internet, a lot of information on this problem.
    But ideas often diverge. And I could not find the best selection for me personally.
    Possibly the forum members will would suggest a proven diet or simply a lot of quality recipes against candida?
    I’ll be extremely many thanks for almost any assist
    Thank you!

  127. php
    php May 28, 2017

    大神 能增加 opcode 的混淆加密吗。这个需求太多人需要啊

  128. Huairui Zhang
    Huairui Zhang May 16, 2017

    Bird elder brother hello, nice to meet you. I am a guy who is interested in PHP. Hope to be able to learn what you here.

  129. InstrgropS
    InstrgropS April 7, 2017

    Отрезные круги
    Шлифовальные ленты
    Буры
    Цепи пильные
    Патроны для дрелей
    Бурильные коронки
    Скобы для степлера
    Сверла
    Шлифовальные шкурки
    Принадлежности к станкам
    Пильные полотна
    Пики для отбойного молотка
    Отверточные насадки
    Пилки для лобзика

  130. Anonymous
    Anonymous March 28, 2017

    您好,我们是中软国际教育集团,想和您的博客进行广告投放合作,有意请联系: 贾斌 13552876791 QQ:491607950 邮箱:jiabin@chinasofti.com

  131. qazxtycuns
    qazxtycuns March 16, 2017

    十二之天2服务端墨湘外传服务龙ol服务端凡人修真服务端传奇服务端洛汗S服务端
    洪荒神话服务端弹弹堂服务端九阴真经服务端墨香服务端飞飞OL服务端密传服务端
    神将三国服务端QQ西游服务端英雄远征服务端传奇私服版本购买传奇SF专用登陆器
    红月私服一条龙决战私服一条龙战神姿态商业winlinux服务端石器时代私服一条龙
    倚天2私服一条龙破天一剑私服一条龙骑士私服一条龙盘龙新天上碑5转商业服务端
    蜀门最新207

  132. RafaelDodia
    RafaelDodia March 5, 2017

    Бильярд онлайн бесплатно, играй и получай удовольствие.
    Бильярд онлайн это потрясающая игра которая подойдет абсолютно всем независимо от возраста.

  133. 何兴祥
    何兴祥 February 27, 2017

    两个系统 要求 使用的部分数据表数据必须共享的,但他们各自有自己其他的数据表,怎么保证 共享的数据表数据的一致性呢?
    (整合成同一个数据库吗?若可以整合整一个数据库,有什么需要注意的地方?)