存档

‘PHP’ 分类的存档

PHP下编码转换函数mb_convert_encoding与iconv

2014年9月25日 没有评论

将一个短信接口代码从apache迁移到nginx+php-fpm后,发现无法发出短信了,查看php日志,

[25-Sep-2014 20:15:21] WARNING: [pool www] child 9617 said into stderr: “NOTICE: PHP message: PHP Fatal error:  Call to undefined function mb_convert_encoding() in /data/htdocs/xx.php on line 13”

发现函数mb_convert_encoding没定义,看着像某个模块没装,google了把,要装个mbstring扩展,之前都是一下装好多扩展(虽然不知道这个扩展是干啥的,按照网络文档来),现在是要应用需要哪个装哪个,逼格略有提高(至少这样能让我知道哪个模块是干啥的)。 阅读全文…

php中max_input_vars默认值为1000导致多表单提交失败

2014年9月25日 1 条评论

公司内一个php的后台管理系统,之前运行在apache上,后来我给转到nginx+php上后,其他功能运行正常,有一个修改功能提交表单后没有提交成功,查了代码没查出来什么问题,后来看了下php error日志,也没有什么线索,打印post请求后,也发现提交表单个数和正在表单个数对不上(当时怀疑过是不是某个插件是不是没装,字符集对不对等),再看了下php-fpm的日志,有点信息可以参考了。

 

提示input 变量个数超过1000,建议修改php.ini文件中的 max_input_vars,PHP从5.3.9开始增加一个变量 max_input_vars 用来限制提交的表单数量。

妈的,我这个功能(类似于phpmysqladmin功能,读取数据库表,然后能写入编辑,然后数据库字段有128个,然后每个字段有11个input框)大概有1400多个input,(多么痛的领悟,为毛这么吊,研发一个表搞这么多字段),

然后我在php.ini里面加入

重启php-fpm后,功能正常了。看日志很重要。

 

分类: PHP 标签: ,

[菜鸟学php]PHP版简单计算器

2014年5月19日 没有评论

用到的知识点

1. 三元运算

语法:条件 ? 结果1 : 结果2
说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。

再看个例子

那么三元的表示法就是

阅读全文…

分类: PHP 标签: , , , , , , ,

[菜鸟学php] php版自定义函数实现金字塔

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


php版自定义函数实现金字塔

 

 

效果可以查看  php版简单实现金字塔-for循环

 

分类: PHP 标签: ,

[菜鸟学php] php版自定义函数实现棋盘

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

效果可以参考 php版简单实现棋盘-for循环+html

[菜鸟学php] php版自定义函数实现99乘法表

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


使用自定义函数方式来实现99乘法表,函数是一种可以在任何被需要的时候执行的代码块。

创建 PHP 函数:

  1. 所有的函数都使用关键词 “function()” 来开始
  2. 命名函数 – 函数的名称应该提示出它的功能。函数名称以字母或下划线开头。
  3. 添加 “{” – 开口的花括号之后的部分是函数的代码。
  4. 插入函数代码
  5. 添加一个 “}” – 函数通过关闭花括号来结束。

例子

一个简单的函数,在其被调用时能输出我的名称的:

使用 PHP 函数

现在,我们要在 PHP 脚本中使用这个函数了:

以上代码的输出:

下面我们来写用函数实现99乘法表

得到的结果和html一样。这里就不贴图了,效果是这样 php版简单99乘法表-for循环

[菜鸟学php] php版简单实现棋盘-for循环+html

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

实现这个棋盘首先我们想想棋盘是怎么样的,是有很多个方格组成,然后由黑色和白色的相间的方格组成。首先我们先把方格画出来。

得到以下结果:(是不是有点眉目了,我们现在只要把格子上颜色就可以)

php简单实现棋盘

php简单实现棋盘1

 

看到上面棋盘后,考虑下黑白格排放位置,有个规律可以发现,横排和竖排上白色格子都是基数,黑色的都是偶数,我们可以用取余的方法来判断这个格子该显示什么颜色,基数单元格我让他显示白色,偶数单元格显示黑色,基数+偶数=偶数,所以偶数单元格(黑色)我们很好找出来了。剩余的就是基数格(白色)

得到的效果是这样:

php简单实现棋盘

php简单实现棋盘

分类: PHP 标签: ,

[菜鸟学php] php版简单实现金字塔-for循环

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

上篇文章介绍了php下简单实现99乘法表,下面再实现个金字塔形状物,通用也是用到for循环

 

得到的结果是这样的:

php简单实现金字塔

php简单实现金字塔

同样想让这个金字塔倒立起来呢

效果是这样的

php版简单实现金字塔

php版简单实现金字塔

 

[菜鸟学php] php版简单99乘法表-for循环

2014年5月13日 没有评论

54im.com php for循环例子系列文章:

1. php版简单实现99乘法表

2. php版简单实现金字塔

3. php版简单实现棋盘

4. php使用自定义函数实现99乘法表

5. php版自定义函数实现金字塔

6. php版自定义函数实现棋盘

转载请注明出处:http://54im.com


 

 

最近在学php,用php写个简单99乘法表,用到for循环,其实这个也可以改下放shell中。

首先了解下for循环

for 语句

如果您已经确定了代码块的重复执行次数,则可以使用 for 语句。

语法

注释:for 语句有三个参数。第一个参数初始化变量,第二个参数保存条件,第三个参数包含执行循环所需的增量。如果 initialization 或 increment 参数中包括了多个变量,需要用逗号进行分隔。而条件必须计算为 true 或者 false。

例子

下面的例子会把文本 “Hello World!” 显示 5 次:

下面再看看99乘法表这个的正序写法,要用到嵌套循环。

运行这个php得到的结果 :

php版99乘法口诀表

php版99乘法口诀表

下面想让这个乘法表倒序,其实只有for循环里面数字逐渐递减就可以。

倒序显示如下:

php简单显示99乘法表

php简单显示99乘法表

[转]安装php时报gd相关的错误gd_ctx.c

2012年4月29日 没有评论

转自:http://blog.csdn.net/hzcyclone/article/details/7493051

在安装php时,报如下错误

In file included from /kk/php-5.4.0/ext/gd/gd.c:103:

/kk/php-5.4.0/ext/gd/gd_ctx.c: In function ‘_php_image_stream_putc’:

/kk/php-5.4.0/ext/gd/gd_ctx.c:51: 错误:‘struct gdIOCtx’ 没有名为 ‘data’ 的成员

/kk/php-5.4.0/ext/gd/gd_ctx.c: In function ‘_php_image_stream_putbuf’:

/kk/php-5.4.0/ext/gd/gd_ctx.c:58: 错误:‘struct gdIOCtx’ 没有名为 ‘data’ 的成员

/kk/php-5.4.0/ext/gd/gd_ctx.c: In function ‘_php_image_stream_ctxfree’:

/kk/php-5.4.0/ext/gd/gd_ctx.c:67: 错误:‘struct gdIOCtx’ 没有名为 ‘data’ 的成员

/kk/php-5.4.0/ext/gd/gd_ctx.c:68: 错误:‘struct gdIOCtx’ 没有名为 ‘data’ 的成员

/kk/php-5.4.0/ext/gd/gd_ctx.c:69: 错误:‘struct gdIOCtx’ 没有名为 ‘data’ 的成员

/kk/php-5.4.0/ext/gd/gd_ctx.c: In function ‘_php_image_output_ctx’:

/kk/php-5.4.0/ext/gd/gd_ctx.c:153: 错误:‘gdIOCtx’ 没有名为 ‘data’ 的成员

make: *** [ext/gd/gd.lo] 错误 1

好像说这个错误算是php5.4的bug,下面对应的两篇文章有对应的说明:
https://bugs.php.net/bug.php?id=55224
https://bugs.php.net/bug.php?id=60108

解决方法     亲测成功 :)

vi <gd_dir>/include/gd_io.h

gdIOCtx结构中增加void *data;

格式如下

typedef struct gdIOCtx

{

int (*getC) (struct gdIOCtx *);

int (*getBuf) (struct gdIOCtx *, void *, int);

 

void (*putC) (struct gdIOCtx *, int);

int (*putBuf) (struct gdIOCtx *, const void *, int);

 

/* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! */

int (*seek) (struct gdIOCtx *, const int);

 

long (*tell) (struct gdIOCtx *);

 

void (*gd_free) (struct gdIOCtx *);

void (*data);

}

gdIOCtx;

linux安装Zend Guard

2012年3月8日 没有评论
zend guard

This article applies to:

[ Zend Studio for Eclipse 6.x, Zend Studio 5.x, Zend Guard 5.x ]
[ Linux ]


Symptom

Two types of problems have been reported:

  1. Installation is successful with normal user account but fails when run as superuser (root).
  2. Installation fails resulting an a JRE error.

 

Error messages

Preparing to install…
Extracting the JRE from the installer archive…
Unpacking the JRE…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…
Launching installer…
Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
Stack Trace:
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.

 

Preparing to install…
Extracting the JRE from the installer archive…
Unpacking the JRE…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…
Launching installer…
exec: 2481: /tmp/install.dir.5489/Linux/resource/jre/bin/java: not found

 

Preparing to install…
Extracting the JRE from the installer archive…
Unpacking the JRE…
Extracting the installation resources from the installer archive…
Configuring the installer for this system’s environment…
Launching installer…
No protocol specified
‘SWING’ UI not supported by VM. Reverting to AWT.
Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
Stack Trace:
java.lang.NoClassDefFoundError

Technical Details

 

  1. The Macrovision InstallAnywhere installer can’t find the display to run on, due to current environment not being transferred into the superuser session. Basically, same commands should produce the same effect on any system. In reality, this is not the case — many nuances vary from distribution to distribution.
  2. The Macrovision InstallAnywhere installer has compatibility issues, resulting in its inability to find/access the packaged JRE, or to run it properly.

Resolution / Workaround

Fortunately, the problems are quite easy to workaround:

  1. Just set the DISPLAY environment variable for the installer using one of these commands:
    • # DISPLAY=:0 ./ZendStudio5_5_1.bin
    • $ sudo export DISPLAY=:0; ./ZendStudio5_5_1.bin
  2. Instruct the installer to run in GUI-less (console) mode:
    • # ./ZendStudio5_5_1.bin -i console
  3. Instruct the installer to use system’s JRE. It is definitely accessible and is compatible with the distribution:
    • # ./ZendStudio5_5_1.bin LAX_VM /usr/bin/java
Note:
/usr/bin/java is the correct path in most distributions, however, your mileage may vary. To find the path on your system:
# which java

检测php模块是否加载方法:

2011年7月21日 2 条评论

检测php模块是否加载方法:

 

1. 当然是phpinfo

<?

phpinfo();

?>

2.php -m

3.php -i

分类: PHP 标签:

编译php5.3.6出现问题cannot open shared object file

2011年7月19日 没有评论

 

 

php-fpm启动报错:

Starting php_fpm /usr/local/webserver/php/bin/php-cgi: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory failed。

报错信息指示libmysqlclient.so.16没有找到。

进入/usr/local/mysql/lib/ 目录查看,呵呵,还真没有,只有一个libmysqlclient.so.16.0.0 。于是我建立了一个软件链接来指向libmysqlclient.so.16。

再次启动php-fpm,问题解决了。

听有些网友说问题仍然存在,那可以试试其它网友的解决方案,在/usr/lib/下建立个软链接:

 

如果不行,往下看

export LD_LIBRARY_PATH=”/usr/local/mysq/lib:$LD_LIBRARY_PATH”

加上这句后在去安装编译就ok了。

 

PHP-用户登录代码

2011年3月28日 4 条评论

1.数据库名:login 表名:woyoo
2.字段名 :name password (一共两个)
3.表单里输入框的名字分别为:name password
4.最关键了,login.php页的代码,要求:将用户在表单里填写的name以及password 与 MYSQL数据库中woyoo表中的name以及password分别进行对比,如果一致,打开test.htm页,否则,弹出对话框:密码或用户名不正确!

login.php内容如下:

以下附简单的login.htm内容

用户名

密码

   

上面是WordPress自动把代码给解析了

<html>
<body>
<form name=”login” action=”login.php” method=post>
用户名<input type=text name=”name”>
<p>密码<input type=password name=”password”>
<p>
<input name=”log” type=submit value=”登录”>
</form>
</body>
</html>

分类: PHP 标签:

Fatal error: Out of memory (allocated 解决办法

2011年3月25日 没有评论

Fatal error: Out of memory (allocated 786432) (tried to allocate 98304 bytes) in H:\freehost\zhengbao2\web\includes\lib_common.php on line 744

疑问:786432 是指786432bytes?即:768MB 98304 bytes=96MB 那0.75M是怎么算出来的。

正确答案:786432bytes=768KB=0.75MB 98304bytes=96KB=0.09MB ?

最小是位 <其次字节(byte)<KB<MB<GB<TB
一个字节 =8位
1KB=1024B(字节)
1MB=1024KB
1GB=1024MB
1TB=1024GB

千,1KB=2的10次方=1024B,
兆,1MB=2的20次方=1024*1024B=1024KB,
吉,1GB=2的30次方=1024*1024*1024B=1024MB,
太,1TB=2的40次方=1024*1024*1024*1024B=1024GB,
拍,1PB=2的50次方=1024*1024*1024*1024*1024B=1024TB,
艾,1EB=2的60次方=1024*1024*1024*1024*1024*1024B=1024PB,
泽,1ZB=2的70次方=1024*1024*1024*1024*1024*1024*1024B=1024EB,
尧,1YB=2的80次方=1024*1024*1024*1024*1024*1024*1024*1024B=1024ZB.

今天一个客户的网站出现这样的错误。程序是PHP的。经百度了一下。说明内存不足。中文件翻译的意思是:内存不足(分配786432)(尝试分配98304字节)

意思是尝试分配98MB的内存。但一般php设置为只允许给php程序分配 0.75M内存

解决办法:打开php.ini 修改memory_limit = 的这行
依照服务器配置进行调整
配置的内存使用大小修改后重启iis/apache
问题解决^^

PHP5.2.3-win32这个版本有个非常严重的bug,那就是最大内存设置成1024M,但是PHP实际返回的只有2M,经常返回下面的错误:

PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1048576) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 786432) (tried to allocate 393216 bytes)
PHP Fatal error: Out of memory (allocated 1310720) (tried to allocate 393216 bytes)

这是官方的bug报告,该bug只出现于windows版本,linux版本没有这个bug。看来只能等下一次升级的时候修复了。 PHP5.2.3-win32 我的是PHP5.2.8-win32 怎么还是会偶尔出现?

分类: PHP 标签:

linux编译安装php模块json

2011年3月8日 1 条评论

这里提供在线安装方法,方便简单快捷。

下面介绍编译安装json
1.下载源文件包:

2.解压

3.进入目录

4.初始化PHP环境
phpize报错了:phpize commend not found
PHP JSON安装之前需要安装phpize

5.这个可以在yum中安装

6.如果还不能完成PHP JSON安装,说明你的编译工具有问题,安装一下就可以了

7.运行phpize
(成功了)

8.查看PHP JSON安装有没有成功

说明已经有了

9.修改php.ini
我的是在php.ini 中include一个文件夹 /etc/php.d
在这个文件中添一个json.ini

10.重启服务

11.phpinfo()中您将看到
linux中json安装

分类: PHP 标签: ,

linux下使用pear在线安装json

2011年3月8日 没有评论

json 在线安装
默认安装好php,是没有json模块的。编译安装json很麻烦,而且还得去下载安装包。这里提供在线安装方法

加载json模块

php模块json在线安装
在php测试页面中已经看到json加载了。
linux中json安装

分类: PHP 标签: ,