Используя следующее, я могу получить имя файла:
<?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:
.
Надеюсь, это поможет.