以前没写过,有些疑问还不清楚1、能否像写普通PHP代码一样写SHELL,语法、函数、数据库操作等代码编写是否都一样?2、如果PHP语法能直接用来写SHELL,那么我要写一个特定时间进行特定操作的程序,是否可以这样写:
if(date('Y-M-d H:i:s') == '2009-12-22 12:00:00'){
    //完成特定操作的程序
}
然后运行该shell,到了指定时间该操作是否就自动运行了呢?3、目前不用考虑程序输出什么信息的问题,我只需要做一些数据库、邮件发送的操作4、shell能否调用其它php页面代码,比如数据库链接文件、phpmailer类等能在普通PHP页面中使用的代码?5、shell代码页怎么调用?需要存放至特殊的目录下吗?还是直接和网站代码放一起也可以?

解决方案 »

  1.   

    php 不能这样写,不过你直接写shell定时运行php脚本是可以的。
      

  2.   

    那么如果我写了个a.php的页面,需要这个页面每5分钟运行一次,已知该文件的相对和绝对路径。
    这个SHELL该怎么写?a.php就是一个普通的PHP代码页。
    如果能判断一下该页面是否已经被调用并运行着最好,比如12:00调动该页面,到12:05该页面的操作还未完成,则不调用,12:10分再次调用,发现已经完成了上一轮操作,继续调用该页面。(我想用SESSION应该能做到吧?)
      

  3.   

    php 里可以写代码, 用反引号 $out = ` 这里写你要的内容, 或命令 `;再判断$out 来知道是否执行, 注意, 你写的shell要有反回值,比如, 成功返回true, 否则空值, 
      

  4.   

    可以 a.定时调用还是放在cronjob里比较好,(当然你也可以写个无限循环一直运行)
    b.调用 用 php a.php,  或者 文件里用  #!/usr/local/bin/php   (根据你的php路径写) 然后直接运行 
    c.可以调用大部分函数,库/也可以include其它文件. 但是一些与web相关的东西在命令行是没有的,比如 $_SERVER,$_SESSION...等,web相关的函数当然也没意义
      

  5.   


    $_SESSION也不能用吗?既然是存储服务器端的为何不能用了?
    我还指望通过$_SESSION来判断a.php是否被重复调用呢……因为这个页面可能执行时间会很长。我还想在a.php调用时先判断某$_SESSION变量是否赋值,未赋值才运行,否则直接退出。然后开始执行先赋值,执行完毕取消赋值……或者写个死循环吧,
    while(1){
      //操作
      sleep(300);
    }
    然后用ajax异步提交到这个页面,让它一直运行下去,不知道可行不。我担心会死机