我有一个
PHP脚本,将数据发送到另一个脚本并处理它异步(至少我希望同样得到它).这是called.PHP的代码
include_once("../caller.PHP"); chdir(__DIR__); fclose(STDOUT); //THIS fclose(STDIN); //THIS fclose(STDERR); //THIS function giveCake($arg1,$arg2){ global $MysqLi; $sleep = 15; //script has to sleep (...) code amongst sleep (...) sleep($sleep); $_SESSION; //would session variable of the user be available if the script is called as described? //script caller.PHP is firstly initiated by a script with pre-defined $_SESSION //now that I'm thinking maybe it won't since it is called from the command line... pcntl_exec("/usr/bin/PHP",Array($_SERVER['argv'][1])); } if (!isset($_SERVER["HTTP_HOST"])) { //check if it comes from within the server? localhost? $arg1 = parse_str($argv[1],$_GET); $arg2 = parse_str($argv[1],$_POST); if($arg1 && $arg2){ giveCake($arg1,$arg2); } }
我的问题在标题中给出,如下:
>通过关闭文件操作(如在called.PHP的开头)这是否会影响可能正在使用文件操作的所有其他脚本,或仅影响执行时的受影响的脚本?
>如果使用cURL调用,我会让脚本容易受到不适当的执行吗?虽然我认为如果有人想要执行它,我肯定会访问$_SESSION,这会让它变得容易欺骗.有办法对付这个吗?
>考虑到我需要在脚本之间传输的参数可以轻松实现大量字节,因为在每个数组中大约400字节* x数组会有任何执行问题吗?
非常感谢您的帮助,我希望您不要认为这是非常广泛的,因为我已经明确地尝试并详细说明了我的所有问题,并希望在整个过程中提供帮助(比分段更容易).请尽可能帮忙,tyvm.
Q1:文件操作总是影响当前执行的脚本,当然包括通过require或include加载的所有库.
Q2:根据呼叫者和被呼叫者所在的位置,您可以限制访问,例如通过限制对某些IP的访问,也可以通过.htaccess访问方法.
喜欢:
<Limit GET POST> order deny,allow deny from all allow from 1.2.3.4 </Limit>
问题3:同样取决于两个脚本之间的连接,如果有足够的可用带宽,通常大数据量应该没有问题.
我们有一些操作脚本可以定期处理大约100兆字节的数据.可能需要通过在PHP.ini中设置max_execution_time或使用ini_set()或使用set_time_limit()(这是一种不同的方法)来扩展或关闭脚本执行时间限制.