免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: HonestQiao
打印 上一主题 下一主题

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧) [复制链接]

juggler 该用户已被删除
51 [报告]
发表于 2005-09-06 09:36 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
52 [报告]
发表于 2005-09-06 23:11 |只看该作者

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧)

[quote]原帖由 "csona"]如果对像操作用"."就好啦[/quote 发表:


这个愿望估计无法达成了

设计时没有好好规划,流行时才想起来发展的东西就是这样
diskfreespace == disk_free_space
is_writeable == is_writable()

这种笑话只有php才有

论坛徽章:
0
53 [报告]
发表于 2005-09-08 12:53 |只看该作者

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧)

PHP已经离开了当初的目的。现在PHP的函数库,非常混乱。就想存放物品的仓库东西都乱放到里面。

在*nix下PHP要求模块都要静态编译来避免出现memoery leak这样问题。这对为PHP扩展功能很麻烦。

当然这样做速度快。可是最后我只好给Perl写扩展了我可不想把给老板make money的服务器重新编译PHP

PHP的那种FORM既是变量的做法,已经越来越发现有问题了。现在如果是主要PHP的开发公司可能已经要求程序员必须初始化变量了。就象当初嘲笑Perl一样。

PHP的magic quote确实在某些地方起到了作用,可惜对SQL注入防御能力太弱,只能保护mysql。而这个时候你要是使用SQL SERVER那你的噩梦开始了,你又不能关闭magic quote因为旧代码在跑,你又会在MSSQL上出现问题。

PHP在apache下安装确实简单,就是因为这样PHP只能成apache的模块。除非你用别的办法php才能成为apache api

论坛徽章:
0
54 [报告]
发表于 2005-09-09 03:02 |只看该作者

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧)

优点是简单易学、开发小型项目效率高。

至于线程、完全的OO这些要求,我认为对于php这样一种脚本语言来说没必要。难道你想php像python那样慢、java那样吃内存?

而且对于复杂项目,没人规定你只能用php。完全可以将多种平台结合起来,各展所长。

论坛徽章:
0
55 [报告]
发表于 2005-09-14 13:17 |只看该作者

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧)

我最喜欢 hightman转载的文章,个人认为PHP最缺少的是“标准框架”,其他的毛病都可以在使用的时候有意识的回避。
当然,PHP还有另外一个好处,他可以比较方便的与其他语言开发的模块或者什么东西结合

论坛徽章:
0
56 [报告]
发表于 2005-09-14 21:44 |只看该作者

[讨论] PHP 大批判(尽你所能所知,批判一下子PHP的不足吧)

有位大牛说过:纯Web开发的项目已经趋近于消亡。

不知大伙对这句话有什么看法。

论坛徽章:
0
57 [报告]
发表于 2006-03-08 21:39 |只看该作者
原帖由 北京野狼 于 2005-9-5 09:56 发表


cgi不支持template,那怎么写啊?
我做网站都使用标准c

偶像,崇拜中。。。。。。。。。。。。。。。。。

论坛徽章:
0
58 [报告]
发表于 2006-03-08 21:57 |只看该作者
我也来fork一个:
fork.c

  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. #include <string.h>

  5. #define MAX 256

  6. int main(int argc, char **argv)
  7. {
  8.         pid_t pid;
  9.         while(-1 == (pid=fork()))
  10.                 ;
  11.         if(!pid) {
  12.                 int i;
  13.                 char s[MAX];
  14.                 memset(s, 0, MAX);
  15.                 for(i=1;i<argc;i++) {
  16.                         strncat(s, "\"", MAX);
  17.                         strncat(s, argv[i], MAX);
  18.                         strncat(s, "\" ", MAX);
  19.                 }
  20.                 system(s);
  21.         } else {
  22.                 return 0;
  23.         }
  24. }
复制代码


通过gcc -o fork fork.c编译成fork

论坛徽章:
0
59 [报告]
发表于 2006-03-08 22:00 |只看该作者
不论你多么仇恨web调用fork,它仍旧是有必要的。
在某些大数据量处理时,web端的执行会遭遇超时的问题。
我们希望这个处理工作交给编辑人员来完成,而不是由服务器的root管理员在shell端下执行它。
那么,让子进程继续执行下去,父进程终止,这个做法绝对有必要。

论坛徽章:
0
60 [报告]
发表于 2006-03-08 23:24 |只看该作者
原帖由 spiceboy 于 2006-3-8 21:57 发表
我也来fork一个:
fork.c
[code]
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>

#define MAX 256

int main(int argc, char **argv)  ...


这段代码干嘛用啊??  通过子进程把传入的参数用空格连接作为命令再执行系统调用??
这样的程序不是太可怕了吗?

无聊的说一下, strncat() 的最后一个参数那样用是错误的! 这样防不了buffer overflow啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP