تابع گرفتن نام اصلی فایل از URL

۴ سال پیش(به روز شده در ۴ سال پیش) پی اچ پی(PHP)(توابع) ۰

گاهی براحتی میتوان از یک آدرس اینترنتی متصل به یک فایل ، نام فایل را براحتی بدست آورد اما در وب جدید بدلایل دستکاری URLها برای سئو ، به خاطر سپاری راحتتر و سایر موارد نمیتوان از آدرس مورد نظر نام فایل اصلی را شناسایی کرد برای اینکار نیاز داریم تا از هدر HTTP کمک بگیریم تابع زیر این کار را براحتی انجام می دهد یعنی نام فایل اصلی یک URL را بر می گرداند. عملکرد تابع کاملا مشخص است و به مثال برای درک بهتر موضوع توجه کنید.

توجه: منظور از نام فایل ، صرفا نام اسکریپتی آن نیست.

function realFilename($url)
{
   $headers      = get_headers($url, 1);
   $headers      = array_change_key_case($headers, CASE_LOWER);
   $realfilename = '';
 
   if(isset($headers['content-disposition'])) 
      {
         $tmp_name = explode('=', $headers['content-disposition']);
         if($tmp_name[1]) 
            {
               $realfilename = trim($tmp_name[1], '";\'');
            }
      } 
   else  
      { 
         $info         = pathinfo($url);
         if(isset($info['extension']))
            {
               $realfilename = $info['filename'].'.'.$info['extension']; 
            }
      } 
 
  return $realfilename;
}

مثال

//Out = logo11w.png
echo realFilename('https://www.google.com/images/srpr/logo11w.png'); 
 
//Out = RIGHT_JOIN_-_MySQL.png
echo realFilename('http://vtwo.org/en/download/web/image/14/RIGHT_JOIN_-_MySQL.png&imagesize=medium');

برچسبها

PHP Function

صفحات پیشنهادی

نسخه بهتر شده تابع parse_str در php...

در تابع ()parse_str تبدیل آرایه ها بدرستی انجام نمیشود به همین خاطر نیاز هست تا تابع قدرتمندتری استفاده نمود. تابع معرفی شده بصورت کامل یک رشته کوئری ورودی را به متغیرها و آرایه ها تبدیل میکند و به نو...

ایجاد رشته تصادفی...

این تابع رشته تصادفی به طول آرگومان ورودی(len$) تولید می‌کند. function rnd_string($len = 24) { $str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $strlen = strlen($s...

گرفتن زیرمجموعه های شناسه یک آرایه از کل آرایه به صورت تو در تو...

مدتی قبل برای گروه ما در یکی از پروژه ها به تابعی نیاز شد که هر چند جز کدهای ساده ایست اما کارهای بزرگی انجام میدهد. تابع زیر تمامی زیرمجموعه های یک شناسه بصورت تو در تو رو را شناسایی میکند. برای درک ...

شناسایی اعداد از متن یونیکد...

روشهای رایج همگی جهت شناسایی اعداد یک رشته روش زیر را پیشنهاد میکنند......

نظر

نظری ثبت نشده است.
captcha image reload