我正在使用Windows机器。 我想运行一个在W-Drive(网络驱动器)上的php文件,我的bat文件在桌面上。 我不明白为什么但不知何故它不执行我的PHP文件。 我的代码看起来像这样
@echo call to php script
@echo OFF
"D:\xampp\php\php" W:\Automation\Task\csv-file\delete-special-chars.php %*
timeout /t 60
pause
它也没有显示错误 参考了how to run php script from batch file
有什么建议我哪里出错?
由于
此外,当我运行php脚本将删除浏览器中的特殊字符时,我首先得到此错误
Notice: iconv(): Detected an incomplete multibyte character in input string in /opt/lampp/htdocs/Wdrive/Automation/Task/csv-file/delete-special-chars.php on line 17
然后如果我再次刷新它会毫无错误地执行。
我的php scipt看起来像这样
<?php
foreach (glob("*.csv") as $file)
{
$contents = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$csvRows = array_map('str_getcsv', $contents);
$output_array = array();
foreach($csvRows as $row)
{
// echo $row[0] . "\n"; // Will output data contained in the first column
$input = $row[0]; // original text
$output = iconv("utf-8", "ascii//TRANSLIT//IGNORE", $input);
$output_array[] = preg_replace("/^'|[^A-Za-z0-9\s-]|'$/", '', $output); // lets remove utf-8 special characters except blank spaces
// echo $output; // Results in: Foo Bar Zacarias ASABAD Ferreira
}
file_put_contents($file, implode("\n", $output_array));
}
?>
请建议我哪里出错了
答案 0 :(得分:2)
@echo call to php script to delete all the special characters
@echo OFF
W:
cd Automation\Task\csv-file
start "Start PHP" "D:\xampp\php\php.exe" -f delete-special-chars.php %*
答案 1 :(得分:1)
我认为您忘记了扩展程序.exe
所以改成它:
"D:\xampp\php\php.exe"
否则试试这个:
start "Start PHP" "D:\xampp\php\php.exe" -f delete-special-chars.php
编辑:
如果您想更改file
php
脚本中的某些内容,请执行batch
文件location
,这样您就必须cd
转到php
{1}}这样的脚本:
cd W:\Automation\Task\csv-file
因此,您的PHP脚本将从php脚本位置执行