php file_put_contents(‘php script.php ‘,’/tmp/tmpOut.html ‘) говорит: «синтаксическая ошибка рядом с неожиданным токеном `(‘»

#php #bash

#php #bash

Вопрос:

мой PHP-скрипт 1 может быть запущен с параметрами или без них. Результаты отправляются в виде HTML. Я хотел бы перенаправить / сохранить эти результаты в файле.

Я попытался

 /usr/bin/php7.4 file_put_contents('/usr/bin/php7.4 SL5_preg_contentFinder/SL5_preg_contentFinder.php','/tmp/tempOut.html')

/usr/bin/php7.4 file_put_contents("/usr/bin/php7.4 SL5_preg_contentFinder/SL5_preg_contentFinder.php","/tmp/tempOut.html")

Error unexpected token `('

bash: syntax error near unexpected token `('
  

и попытался

 /usr/bin/php7.4 SL5_preg_contentFinder/SL5_preg_contentFinder.php "" > ./results-tmp.html

# Error Parameter must be an array

> PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /home/m/GolandProjects/php2go-translator/SL5_preg_contentFinder/SL5_preg_contentFinder.php on line 1698
  

Система:

работает в Kubuntu и установил две версии PHP

 $ php --version
PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

$ php5.6 --version
PHP 5.6.40-38 ubuntu20.04.1 deb.sury.org 1 (cli) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
  

1: PHP-Script SL5_preg_contentFinder.php

Комментарии:

1. Второй вызов правильный (если вы хотите передать пустой аргумент), и предупреждение является ошибкой в вашем php-скрипте.

2. Это трудно отлаживать без надлежащего обратного отслеживания. Из того, что я могу определить, не углубляясь, ваша переменная private $foundPos_list; не определена ( NULL ) при объявлении. Если вы нигде его не зададите (что, вероятно, и произошло, или вы установили неправильный скалярный тип), a count() на нем завершится ошибкой.

3. @thatotherguy работает. Спасибо

4. Вы не можете использовать операторы PHP в качестве команд оболочки.