作者归档:杨龙

Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead.

<br />
<b>Deprecated</b>: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in
<b>Unknown</b> on line
<b>0</b>
<br />
<br />
<b>Warning</b>: Cannot modify header information – headers already sent in
<b>Unknown</b> on line
<b>0</b>
<br />

 

edit php.ini and set always_populate_raw_post_data = -1

; Always populate the $HTTP_RAW_POST_DATA variable. PHP’s default behavior is
; to disable this feature and it will be removed in a future version.
; If post reading is disabled through enable_post_data_reading,
; $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
always_populate_raw_post_data = -1

奇异的setcookie无效问题

api.xxxx.com/aaa 页面下setcookie,

api.xxxx.com/xxx,cookie 有效

api.xxxx.com/index.php/xxx,cookie 无效

其实是cookie path的问题

setcookie($key, $value, null, ‘/’, null, null);

stuck key XX

今天维修公司笔记本,开机显示

stuck key XX

上网查询到是键盘某个键处于按下状态,无法弹起

XX就是坏掉的键的编码

键盘码参考

http://flint.cs.yale.edu/cs422/doc/art-of-asm/pdf/APNDXC.PDF

PHP Fatal error: Can’t use function return value in write context

empty

(PHP 4, PHP 5, PHP 7)
empty — 检查一个变量是否为空

说明 ¶

bool empty ( mixed $var )
判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。

Note:
在 PHP 5.5 之前,empty() 仅支持变量;任何其他东西将会导致一个解析错误。换言之,下列代码不会生效: empty(trim($name))。 作为替代,应该使用trim($name) == false.

bat启动nginx和php-cgi

@echo off
start /D %CD%\nginx-1.11.3 /MIN /B %CD%\nginx-1.11.3\nginx.exe
start /D %CD%\php-5.4.45-nts-Win32-VC9-x86 /MIN /B %CD%\php-5.4.45-nts-Win32-VC9-x86\php-cgi.exe -b 127.0.0.1:9054
start /D %CD%\php-5.5.37-nts-Win32-VC11-x64 /MIN /B %CD%\php-5.5.37-nts-Win32-VC11-x64\php-cgi.exe -b 127.0.0.1:9055
start /D %CD%\php-5.6.30-nts-Win32-VC11-x64 /MIN /B %CD%\php-5.6.30-nts-Win32-VC11-x64\php-cgi.exe -b 127.0.0.1:9056
start /D %CD%\php-7.0.9-nts-Win32-VC14-x64 /MIN /B %CD%\php-7.0.9-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9070
start /D %CD%\php-7.1.4-nts-Win32-VC14-x64 /MIN /B %CD%\php-7.1.4-nts-Win32-VC14-x64\php-cgi.exe -b 127.0.0.1:9071

vbscript静默启动bat文件

dim answer
answer=MsgBox("Start Nginx && php-cgi?",65,"Start Web Service")
if answer=vbOK then
    set ws=wscript.createobject("wscript.shell")
    ws.run "start-web-services.bat /start",0
end if

定义和用法
MsgBox 函数可显示一个消息框,等待用户点击某个按钮,然后返回指示被点击按钮的值。
MsgBox 函数可返回下面的值:
1 = vbOK – 确定按钮被单击。
2 = vbCancel – 取消按钮被单击。
3 = vbAbort – 终止按钮被单击。
4 = vbRetry – 重试按钮被单击。
5 = vbIgnore – 忽略按钮被单击。
6 = vbYes – 是按钮被单击。
7 = vbNo – 否按钮被单击。

在框架外套一个路由器,单独处理部分请求

...前略

$_run_ci_ = false;

$_methods_ = 'GET|POST|PUT|DELETE|OPTIONS|PATCH|HEAD';

if (isset($_SERVER['REQUEST_METHOD']) &&
     in_array(strtoupper($_SERVER['REQUEST_METHOD']), explode('|', $_methods_))) {
    // Create Router instance
    $router = new \Bramus\Router\Router();
    
    # loader
    include APPPATH . 'hooks/doufu_autoload.php';
    $_doufu_loader_ = new doufu_autoload();
    $_doufu_loader_->run();
    
    // Define routes
    require_once dirname(__FILE__) . "/../../app/config/router.php";
    # default router
    $router->match($_methods_, '.*', function () use (&$_run_ci_) {
        $_run_ci_ = true;
    });
    
    // Run it!
    $router->run();
} else {
    $_run_ci_ = true;
}

if ($_run_ci_) {
    require_once BASEPATH . 'core/CodeIgniter.php';
}

路由器项目地址:https://github.com/bramus/router