Получить имя файла от wget в php - PullRequest
0 голосов
/ 03 декабря 2010

Я настраиваю сценарий так, чтобы я мог ввести URL-адрес веб-страницы, и сценарий будет wget файл.Однако большинство файлов будет в формате *.rar.Можно ли в любом случае передать имя файла команде unrar, чтобы разархивировать файлы, загруженные с помощью wget?

Заранее большое спасибо!

РЕДАКТИРОВАТЬ Я думал об использовании функции PHP explode(), чтобы разбить URL по слешам (/), но это выглядит немного странно.

Ответы [ 4 ]

2 голосов
/ 03 декабря 2010

Используйте basename(), чтобы получить имя файла.

2 голосов
/ 03 декабря 2010

Вместо того, чтобы использовать внешние программы для загрузки и извлечения файла, вам следует рассмотреть возможность использования собственных расширений PHP cURL и RAR .Вы можете использовать функцию tmpfile () для создания временного файла, использовать его в качестве значения параметра CURLOPT_FILE, чтобы cURL сохранял загруженный файл, а затем открыть этот файл с помощью функций RAR, чтобы извлечьсодержание.

1 голос
/ 02 января 2011

@ Вайзард дает лучший ответ. Если есть библиотека, которая решает вашу проблему, используйте ее вместо разветвления внешнего процесса. Это безопаснее, и это чистое решение. PHP cURL и RAR хороши, используйте их.

Однако, если вы должны использовать wget и unrar, тогда @rik дает хороший ответ. Опция wget -O filename сохраняет файл как filename, поэтому вам не нужно его обрабатывать. Я бы предпочел перенаправить вывод wget непосредственно на unrar, используя wget -q -O - <a href="http://www.example.com" rel="nofollow">http://www.example.com</a> | unrar.

@ Ответ Байрона полезен, но вам не нужно его здесь использовать. Это, однако, лучше, чем использовать explode(), как упоминается при редактировании.

0 голосов
/ 03 декабря 2010

wget -O filename URL && unrar filename

...