Получить "имя файла" и расширение из ответа wget - PullRequest
0 голосов
/ 06 февраля 2012

Есть ли простой способ получить имя файла и расширение из файла, загруженного через wget с использованием PHP?

Точная проблема.Я пытаюсь получить доступ к изображению Facebook пользователя после того, как оно приняло мое приложение Facebook.

//e.g
wget http://graph.facebook.com/663660516/picture

Поэтому я не знаю имя файла / расширение загруженного файла.

1 Ответ

1 голос
/ 06 февраля 2012

Используя следующее, я могу получить имя файла:

<?php

ob_start();
passthru('wget http://graph.facebook.com/663660516/picture 2>&1');
$out = ob_get_contents();
ob_end_clean();

if (preg_match('/saving to:.{4}([a-z0-9\.-_]*)/i', $out, $match)) {
    var_dump($match);
} else {
    echo "No match";
}

Результат:

array(2) {
  [0]=>
  string(47) "Saving to: “275781_663660516_1323021723_q.jpg"
  [1]=>
  string(33) "275781_663660516_1323021723_q.jpg"
}

Из $result[1] вы можете затем получить расширение и имя, используя pathinfo () или аналогичные методы.

Примечание:. {4} в регулярном выражении состоит в использовании специальной кавычки (), которую выводит wget вокруг файла (по крайней мере, в моей системе),Он регистрируется как 3 байта в PHP, и я не могу сопоставить его с помощью символьного кода, так что это, на мой взгляд, немного хак.Также предполагается, что системный язык английский, так как в выводе он ищет Saving to:.

Надеюсь, это поможет.

...