İşte benim site taşınabilir değildir olduğunun kanıtıdır. Benim eski sunucuda mükemmel çalıştı bazı regex vardı. Ben şimdi yeni bir sunucuya siteme aktardığınız ve çalışmıyor.
$handle = popen('/usr/bin/python '.YOUTUBEDL.'youtube-dl.py -o '.VIDEOPATH.$fileName.'.flv '.$url.' 2>&1', 'rb');
while(!feof($handle))
{
$progress = fread($handle, 8192);
$pattern = '/(?<percent>[0-9]{1,3}\.[0-9]{1,2})% of (?<filesize>.+) at/';
///######Does not execute this if - no matches
if(preg_match_all($pattern, $progress, $matches)){
fwrite($fh, $matches[0][0]."\r\n");
}
}
Kabuğundan çıktı böyle bir şeydir ve regex dosya boyu ve yüzde eşleşmesi gerekir.
[download] 56.8% of 4.40M at 142.40k/s ETA 00:13
Regex bu bir önceki sunucu üzerinde çalıştı ama değil. Neden? Ben bu nasıl hata?
Sunucularında fark bir önceki Fedora ve onun artık Centos olmasıdır. Ayrıca ben / bin / bash gibi kabuk belirtildi.
Bu bir değişikliğe neden olabilir PHP.ini şey var mı?
Lütfen yardım edin.
Update
(Sadece küçük bir örnek): $ ilerleme çıkışı bu
[download] 87.1% of 4.40M at 107.90k/s ETA 00:05
[download] 89.0% of 4.40M at 107.88k/s ETA 00:04
[download] 91.4% of 4.40M at 106.09k/s ETA 00:03
[download] 92.9% of 4.40M at 105.55k/s ETA 00:03
Update 2
Bu regex çünkü çıkışında ekstra aralık başarısız olabilir?
Ayrıca farklı bir kabuk bir fark olur?
[SOLVED]
Bu çözüldü ve bir P gerektiren regex nedeniyle oldu - daha fazla bilgi için buraya bakınız: http://stackoverflow.com/questions/669178/does-this-regex-in-php-actually-work