Невозможно использовать абсолютный путь к файлу, полученному через STDIN в PHP CLI - PullRequest
0 голосов
/ 12 декабря 2018

Как часть некоторых сценариев автоматизации, я пишу функцию, которая запрашивает у пользователя абсолютный путь к файлу, который он хочет использовать.Проблема в том, что PHP выдает Warning: fopen("/path/to/desired/file/file.txt"): failed to open stream: No such file or directory in /path/to/my/script/script.php on line 13, когда пользователь вставляет файл.Вот общая функция:

function askFile() {

  echo "Please specify the full path to your file.\n";
  $usrInput = trim(fgets(STDIN, 1024));
  $usrInput = '"' . $usrInput . '"';
  echo $usrInput . "\n"; // Just to test the final string.

  echo is_string($usrInput) ? "It's a string.\n" : "It's not a string.\n"; // Just to confirm that the variable holds a string.

  if($handle = fopen($usrInput, 'r')) {
    echo "Thank you. The file is now opened.\n";
  } else {
    "Sorry, could not open the file for reading.\n";
  }

 }

askFile();

Разрешения для файла, для целей тестирования, широко открыты на 777. Когда я просто жестко кодирую абсолютный путь прямо внутри fopen(), все работает, как ожидалось, поэтомупроблема возникает только тогда, когда ввод поступает с STDIN .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...