هل يمكن إرسال طلب http فقط للحصول على آخر وقت تم التعديل فيه؟

StackOverflow https://stackoverflow.com/questions/1806686

  •  05-07-2019
  •  | 
  •  

سؤال

بدلا من الملف نفسه؟

يحرر

الأفضل مع العرض التوضيحي في PHP؟

هل كانت مفيدة؟

المحلول

<?php
// Get Headers
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,            'http://example.com/'); 
curl_setopt($ch, CURLOPT_HEADER,         true); 
curl_setopt($ch, CURLOPT_NOBODY,         true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_TIMEOUT,        10); 
$response = curl_exec($ch); 

// Process Headers
$headerLines = explode("\r\n", $response);
foreach ($headerLines as $headerLine) {
    $headerLineParts = explode(': ', $headerLine);
    if (count($headerLineParts) >= 2) {
        $headers[$headerLineParts[0]] = $headerLineParts[1];
    }
}

echo $headers['Last-Modified'];
?>

نصائح أخرى

نعم.تقوم الطريقة "HEAD" بإرجاع رؤوس الاستجابة فقط وليس البيانات الفعلية.

يمكنك استخدام وظيفة get_headers الخاصة بـ php

$a = get_headers('http://sstatic.net/so/img/logo.png');
print_r($a);

في طلب HTTP الخاص بك، يجب عليك إضافة أي من سمات الرأس هذه، وقد تتلقى 304 (آخر تعديل)

  1. إذا تم تعديله منذ ذلك الحين
  2. إذا لم يكن هناك تطابق
  3. إذا-غير معدلة-منذ ذلك الحين

أندريه على حق، فالرأس سيحصل فقط على الضربات الرأسية.اقتراحي سيعيد الرأس فقط وليس النص إذا تم استيفاء الشروط.إذا تم تحديث المحتوى، فسيحتوي النص على المعلومات الجديدة.

تحتاج إلى كتابة بعض الخدمات للتعامل مع طلب http واستخراج تاريخ آخر تعديل للملف المطلوب وإرجاع التاريخ ردًا على ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top