Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用wget调用URL并根据URL返回ERRORLEVEL';内容_Php_Windows_Batch File_Cmd - Fatal编程技术网

Php 使用wget调用URL并根据URL返回ERRORLEVEL';内容

Php 使用wget调用URL并根据URL返回ERRORLEVEL';内容,php,windows,batch-file,cmd,Php,Windows,Batch File,Cmd,客户机有一个基于Windows的内部服务器,他们在该服务器上编辑CMS的内容。数据每晚与实时web服务器同步。这是一个解决慢速Internet连接的方法 有两件事需要同步:新文件(已排序)和mySQL数据库。为此,我编写了一个脚本,使用mysqldump将数据库导出到转储文件中,然后上载转储文件 上传过程使用名为FTP自动化工具的第三方工具完成 然后,我需要在目标服务器上运行一个基于PHP的导入脚本。根据此脚本的返回值,ScriptFTP操作将继续进行,并重命名某些目录 我需要一个外部工具,因为

客户机有一个基于Windows的内部服务器,他们在该服务器上编辑CMS的内容。数据每晚与实时web服务器同步。这是一个解决慢速Internet连接的方法

有两件事需要同步:新文件(已排序)和mySQL数据库。为此,我编写了一个脚本,使用
mysqldump
将数据库导出到转储文件中,然后上载转储文件

上传过程使用名为FTP自动化工具的第三方工具完成

然后,我需要在目标服务器上运行一个基于PHP的导入脚本。根据此脚本的返回值,ScriptFTP操作将继续进行,并重命名某些目录

我需要一个外部工具,因为scriptFTP只支持FTP调用。我在考虑Windows版本的wget

在scriptFTP中,我可以执行任何批处理或exe文件,但我只能解析调用产生的错误级别,而不能解析标准输出。这意味着如果PHP导入操作出错,我需要返回
errorlevel1
,如果操作正常,我需要返回
errorlevel0
。此外,很明显,如果无法建立到导入脚本的连接,我需要返回一个正的errorlevel

我完全可以控制导入PHP脚本,并且可以决定它在出现错误时做什么:输出错误消息、返回标题等等

如何运行wget(或任何其他启动服务器端导入的工具)并根据PHP脚本返回的内容返回特定的错误级别?


我现在的最佳选择是构建一个批处理文件,该文件执行wget命令,将结果存储在一个文件中,批处理文件根据文件的内容返回errorlevel0或1。但我真的不知道如何使用批处理编程匹配文件内容。

您可以在powershell中执行以下操作:

$a = wget --quiet -O - www.google.com
$rc = $a.CompareTo("Your magic string")
exit $rc

TMHO,使用php curl会比wgetI不能在“客户端”运行php更好,只能在远程服务器上运行。我在这里只使用命令行工具。如果它是windows服务器,那么编写一个小型C#应用程序来解析输出并返回正确的错误代码不是更容易吗?当然,但我不会说C#,我上一次用任何语言构建windows应用程序是在五年前在这种情况下,我更喜欢现成的工具,我不介意使用与wget完全不同的工具。(查看Wikipedia什么是powershell)(查看Windows版本)是的,我可以使用powershell。在powershell中,您甚至不需要
wget
。只需使用
System.Ne.WebClient
及其
DownloadString
方法即可。非常棒,这非常有效。多谢各位@约翰内斯·罗塞尔:也谢谢你的建议,我会调查的。我有一个后续问题:如果有人想看的话。