wget — Почему мой PHP exec () по команде bash tidy не может открыть файл?

Пожалуйста, потерпите меня (я только учусь использовать php). Я не могу понять, если мой tidy ошибка связана с неверным wget команда или сама по себе. Я думал, что моя команда wget собирала удаленный файл и помещала его в каталог $ link на моем сервере … но что-то не так.

Я старался

  • изменяя $ tidy_cmd на одинарные кавычки
  • объединяя строку в "..." . $htmlDir . "/*";
  • не включая «/ *»
  • используя команды php tidy (закомментировано … не удалось).

Ошибка:

Ошибка: не удается открыть «app / HtmlPages / arl.server.com-2015_11_19_15: 36: 09 / arl.server.com / index.php / art»

wget.php:

    $ip = $argv[1];

// Get the current time for the filename
$currentTime = date( 'Y_m_d_H:i:s' );
$link = "app/HtmlPages/$ip" ."-". "$currentTime";
$htmlDir = "$link/$ip/index.php/art";

// Use wget to download aaron.htm webpage
$wget_cmd = "wget -P $link/ http://$ip/index.php/art/aaron.htm";

exec ( $wget_cmd );

// Clean up the HTML for every page.
$tidy_cmd = "tidy -config tidy_config.txt -i -m $htmlDir/*";
exec ( $tidy_cmd );

//$tidy_config = file_get_contents( 'tidy_config.txt' );
//$tidy = new tidy();
//$tidy->parseFile( '$htmlDir/*.htm', $tidy_config );
...

4

Решение

Похоже $htmlDir относится к вашему исходному файлу (т.е. wget.php), тогда как он должен быть абсолютным путем от корня файловой системы (например, / home / yourname / yourfolder / и / so / on /). Когда вы выполняете tidy он не может прочитать файл, потому что файл не существует, т. е. вы указали неверный путь. Попробуйте указать ему абсолютный путь от корня файловой системы, и вам будет хорошо!

Для дальнейшего использования полезно отладить подобные вещи, создав тестовый файл, содержащий только проблемный код. В вашем случае только бит, который выполняет tidy, Затем вы можете выполнить этот файл в командной строке с помощью $ php test_script.php и, надеюсь, это сделает вашу отладку быстрее и проще!

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]