% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12.4M 100 12.4M 0 0 4489k 0 0:00:02 0:00:02 --:--:-- 4653k
Yukarıdaki komut satırından bir CURL çıktı indir dosyasıdır. Ben şöyle PHP kullanarak bu esir var, ama ben yüzde yapılması ayıklamak için pre_match kullanmak nasıl çalışıyor sorun yaşıyorum.
$handle = popen('curl -o '.VIDEOPATH.$fileName.'.flv '.$url, 'rb');
while(!feof($handle))
{
$progress = fread($handle, 8192);
//I don't even know what I was attempting here
$pattern = '/(?<Total>[0-9]{1,3}\.[0-9]{1,2})% of (?<Total>.+) at/';
//divide received by total somehow, then times 100
if(preg_match_all($pattern, $progress, $matches)){
fwrite($fh, $matches[0][0]."\r\n");
}
}
Bunu nasıl yapabilirim? Lütfen dikkat, ben yukarıdaki preg_match_all yapıyorum hiç bir fikrim yok!
Teşekkürler
Update
Teşekkürler to the help of ylebre. I have this so far.
$handle = popen('curl -o '.VIDEOPATH.$fileName.'.flv '.$url.' 2>&1', 'rb');//make sure its saved to videos
while(!feof($handle))
{
$line = fgets($handle, 4096); // Get a line from the input handle
echo '<br>Line'.$line.'<br>';
$line = preg_replace("/s+/", " ", $line); // replace the double spaces with one
$fields = explode(" ", $line); // split the input on spaces into fields array
echo '<br>Fields: '.$fields[0];
fwrite($fh, $fields[0]); // write a part of the fields array to the output file
}
Ben tarayıcı bu çıktıyı almak:
Satır% Toplam% Zamanı% Xferd Ortalama Hız Zaman Zaman Zaman Güncel
Fields: Line Dload Upload Total Spent Left Speed
Fields: Line 0 1340k 0 4014 0 0 27342 0 0:00:50 --:--:-- 0:00:50 27342 41 1340k 41 552k 0 0 849k 0 0:00:01 --:--:-- 0:00:01 1088k 100 1340k 100 1340k 0 0 1445k 0 --:--:-- --:--:-- --:--:-- 1711k
Fields: Line
Ben yüzde bölümü nasıl tek ayıklamak? Belki CURL başına yapabilirsiniz - hmm bu konuda bir soru soracaktır.