Php 卷曲:多个曲奇

Php 卷曲:多个曲奇,php,curl,Php,Curl,如何为每个客户端/PC运行脚本提供多个cookie 如果ComputerA运行脚本,则会创建cookies.txt,同时ComputerB运行相同的脚本,则cookies.txt会被过度写入,这是不好的 例如: curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt"); curl_setopt($ch,CURLOPT_COOKIEJAR,"cookie.txt"); 如果它们是独立的计算机,那么它就是独立的文件系统,每个系统都有自己的cookie文件 但

如何为每个客户端/PC运行脚本提供多个cookie

如果ComputerA运行脚本,则会创建cookies.txt,同时ComputerB运行相同的脚本,则cookies.txt会被过度写入,这是不好的

例如:

curl_setopt($ch,CURLOPT_COOKIEFILE,"cookie.txt");
curl_setopt($ch,CURLOPT_COOKIEJAR,"cookie.txt");

如果它们是独立的计算机,那么它就是独立的文件系统,每个系统都有自己的cookie文件

但如果您使用的是共享存储,那么可能需要使用动态文件名

'cookie-' . $_SERVER['SERVER_NAME'] . '.txt'
相反,这会给你

cookie-ComputerA.txt    cookie-ComputerB.txt    etc...

您可以散列请求来自的IP,并将其添加到文件名中。除非两台计算机具有相同的公共IP,否则这将起作用。

您可以使用唯一标识符来唯一标识用户。用户id、会话id或IP地址可能是一个不错的选择:

$user_id = get_user_id_from_somewhere();
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie-".$user_id.".txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie-".$user_id.".txt");

我认为那行不通?脚本将位于同一服务器上,但请求来自多台计算机。啊。你说“计算机a运行脚本,计算机B运行脚本”。两台独立的计算机。无论如何,这仍然不是问题。cookie.txt文件将采用Netscape cookie文件格式,用于跟踪cookie来自哪个主机。除非您同时多次运行脚本,否则不会有一个cookie覆盖另一个cookie的危险。Marc,很好,但我喜欢在MS-DOS上运行脚本,而不是在浏览器上运行脚本。如何在MS-DOS(连接到外部web)上运行脚本?在本地机器(开发)上,我通常这样做:
C:\wamp\bin\php\php5.3.0\php.exe index.php
,它将执行代码。。现在我如何在多台计算机上运行它(没有安装LAMP)?有一些PHP编译器可以将.PHP脚本转换成.exe,但它们不能保证工作,因为PHP不能可靠地编译成.exe。您需要在每台要运行脚本的机器上安装PHP。谢谢Marc B,我将对此进行研究。好主意,也许是rand(123452342324)?@user791022您不能使用随机数作为唯一标识符,因为PHP的随机生成器不能保证冲突。如果您在应用程序上使用用户身份验证,那么您几乎肯定应该为此使用用户ID。否则,我建议使用IP地址或IP地址哈希(例如,
md5($\u SERVER['REMOTE\u ADDR']
)。