احصل على اسم الملف من WGT في PHP
سؤال
أقوم بإعداد برنامج نصي حتى أتمكن من إدخال عنوان URL إلى صفحة ويب وسيقوم البرنامج النصي wget
الملف. معظم الملفات ، ومع ذلك ، ستكون في *.rar
صيغة. هل هناك على أي حال يمكنني تمرير اسم الملف إلى unrar
أمر بإلغاء تنزيل الملفات عبر wget
?
الكثير الكثير من الشكر مقدما!
تعديل فكرت في استخدام PHP's explode()
وظيفة لتفكيك عنوان URL بواسطة القطع المائلة (/
) ولكن هذا يبدو قليلا الاختراق.
المحلول
Wyzard يعطي أفضل إجابة. إذا كانت هناك مكتبة تحل مشكلتك ، فاستخدمها بدلاً من وضع عملية خارجية. إنه أكثر أمانًا وهو الحل النظيف. PHP لفة و رار جيدة ، استخدمها.
ومع ذلك ، إذا كان يجب عليك استخدام wget
و unrar
, ، ثم Rik يعطي إجابة جيدة. wget
'س -O filename
الخيار يحفظ الملف كما filename
, ، لذلك ليس عليك حلها. أفضل الأنابيب wget
إخراج مباشرة إلى unrar
رغم ذلك ، باستخدام wget -q -O - http://www.example.com | unrar
.
إجابة بايرون مفيدة ، لكنك لا تحتاج حقًا إلى استخدامها هنا. ومع ذلك ، هو أفضل من استخدام explode()
كما يذكر تحريرك.
نصائح أخرى
بدلاً من التخلص من البرامج الخارجية لتنزيل الملف واستخراجه ، يجب عليك التفكير في استخدام PHP الخاص لفة و رار الامتدادات. يمكنك استخدام ال tmpfile () وظيفة لإنشاء ملف مؤقت ، استخدمه كقيمة لخيار Curlopt_File لجعل حليقة حفظ الملف الذي تم تنزيله هناك ، ثم افتح هذا الملف مع وظائف RAR لاستخراج المحتويات.
يستخدم basename()
للحصول على اسم الملف.
wget -O filename URL && unrar filename