คำสั่ง Remote files

ตราบใดที่ allow_url_fopen ถูกเปิดใช้งานใน php.ini คุณสามารถใช้คำสั่ง HTTP และ FTP URLs ที่มีฟังก์ชันส่วนใหญ่ที่ใช้ชื่อไฟล์เป็นพารามิเตอร์ นอกจากนี้ URLs สามารถใช้กับคำสั่ง include, include_once, require และ require_once (ใน PHP เวอร์ชั่น 5.2.0 ต้องเปิดใช้งานคำสั่ง allow_url_include) ดูโปรโตคอลที่สนับสนุนและ Wrappers สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรโตคอลที่ PHP สนับสนุน
 
ตัวอย่างเช่นคุณสามารถใช้เพื่อเปิดไฟล์บนเว็บเซิร์ฟเวอร์ระยะไกลแยกวิเคราะห์ข้อมูลสำหรับข้อมูลที่คุณต้องการจากนั้นใช้ข้อมูลดังกล่าวในแบบสอบถามฐานข้อมูลหรือเพื่อส่งออกไปในลักษณะที่ตรงกับส่วนที่เหลือของเว็บไซต์ของคุณ.
 
ตัวอย่างที่ 1 การเรียกชื่อของรีโมตเพจ
<?php
$file = fopen ("http://www.example.com/", "r");
if (!$file) {
    echo "<p>Unable to open remote file.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* This only works if the title and its tags are on one line */
    if (preg_match ("@\<title\>(.*)\</title\>@i", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>
 
นอกจากนี้คุณยังสามารถเขียนไฟล์ลงในไฟล์ FTP เซิร์ฟเวอร์ (โดยที่คุณได้เชื่อมต่อเป็นผู้ใช้ที่มีสิทธิ์การเข้าถึงที่ถูกต้อง) คุณสามารถสร้างไฟล์ใหม่ได้โดยใช้วิธีนี้ ถ้าคุณพยายามจะเขียนทับแฟ้มที่มีอยู่แล้วการเรียกใช้ fopen () จะล้มเหลว
 
หากต้องการเชื่อมต่อเป็นผู้ใช้อื่นที่ไม่ใช่ ‘ไม่ระบุตัวตน’ คุณต้องระบุชื่อผู้ใช้ (และอาจเป็นรหัสผ่าน) ภายใน URL เช่น ‘ftp: // user:password@ftp.example.com/path/to/file’ (คุณสามารถใช้ไวยากรณ์เดียวกันในการเข้าถึงไฟล์ผ่าน HTTP เมื่อต้องมีการตรวจสอบสิทธิ์พื้นฐาน)
 
ตัวอย่างที่ 2 การจัดเก็บข้อมูลบนเซิร์ฟเวอร์ระยะไกล
<?php
$file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Unable to open remote file for writing.\n";
    exit;
}
/* Write the data here. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
บันทึก:

คุณอาจได้รับความคิดจากตัวอย่างข้างต้นที่คุณสามารถใช้เทคนิคนี้เพื่อเขียนไปยังแฟ้มบันทึกระยะไกล แต่น่าเสียดายที่จะไม่ทำงานเพราะ การเรียกใช้คำสั่ง fopen () จะล้มเหลวถ้าไฟล์ระยะไกลมีอยู่แล้ว ในการทำบันทึกการแจกจ่ายเช่นนี้คุณควรดูที่ syslog ()

 
 
 
 
ความคิดเห็น
(มีผู้เข้าชม 192 ครั้ง, 1 ผู้เข้าชมในวันนี้)

Related posts