ถามเกี่ยวกับ function นิดหนึ่งครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ถามเกี่ยวกับ function นิดหนึ่งครับ

ถามเกี่ยวกับ function นิดหนึ่งครับ

 คือว่า ผมทดสอบใช้ function  file_exists(); ครับแล้วมีปัญหาดังนี้

มันไม่ยอมตรวจสอบให้ในขณะที่เป็น http://www.aaaa.com ครับ
ตัวอย่างดังนี้
$URL="http://www.aaaa.com"; // ../test/web
if(file_exists("$URL/images/$re[image]")==1){
echo"xxxx";
}

ตามตัวอย่าง ถ้ามันตรวจสอบได้ค่าของมันจะเป็น 1 แต่ถ้าเปลี่ยน $URL เป็นเรียกจาก Folder โดยตรงจะได้ตามที่ต้องการคือ 1
แต่พอเปลี่ยน $URL เป็น http://www.aaaa.com กับไม่มีค่าอะไรออกมาเลย พอดีผมจำเป็นที่จะต้องเรียกใช้ไฟล์งานข้าม URL ครับ

งง หรือเปล่าครับ 



Cpuhost 183.89.159.xxx 13-06-2010 01:55:55

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

น่าจะเป็นข้อจำกัดของ function file_exists ไม่อนุญาตให้ใช้งานแบบ cross domain ส่วนถ้าอยู่ใน domain เดียวกัน ไม่แน่จะว่าสามารถใช้ได้หรือปล่าว ให้ลองทดสอบผ่าน server ดู
 

<?php
echo file_exists("http://www.youdomain.com/images/xxx.gif");
?>

กับ
 

<?php
echo file_exists("http://www.otherdomain.com/images/xxx2.gif");
?>

ถ้า domain ของเราเรียกผ่าน path url ใช้งานได้ และเรียกผ่าน domain อื่นใช้งานไม่ได้ แสดงว่าน่าจะเป็นเงื่อนไขการใช้งานแบบ cross domain ของฟังก์ชันที่ไม่รองรับ

หรือไม่ได้ทั้งสองกรณี น่าจะเป็นข้อจำกัดของ ฟังก์ชันที่ไม่รองรับ การกำหนดในรูปแบบ url

แต่ถ้าต้องการการตรวจสอบไฟล์ผ่าน cross domain  น่าจะมีอีกหลายวิธี แนะนำ 2 วิธีด้านล่าง โดยวิธีที่ 2 จะเร็วกว่าวิธีแรก แต่ไม่มากนัก
วิธีที่ 1
 

<?php
$url_chekc="https://www.ninenik.com/images/logo_01_Sun.gif";
if(is_array(@file($url_chekc))){
	echo "Found";
	echo "<br>";	
}
?>

วิธีที่ 2
 

<?php
$url_chekc="https://www.ninenik.com/images/logo_01_Su0n.gif";
$g_header=get_headers($url_chekc);
if(preg_match('@200 ok@ui',$g_header[0])){
	echo "Found";
	echo "<br>";	
}
?>

 



ninenik 124.120.3.xxx 13-06-2010
 ความคิดเห็นที่ 2

 ขอบคุณครับผมได้ความรู้ใหม่เลยพอดีไม่เคยใช้ is_array() กับ file() ครับ ช่วยอธิบายได้ฟังหน่อยครับมันหรืออะไรครับ

ผมใช้คำสั่งนี้ครับ 
if(is_array(@file($url_chekc))){



cpuhost 183.89.148.xxx 13-06-2010 22:21
 ความคิดเห็นที่ 3

คำสั่ง file ใช้สำหรับ อ่านค่าไฟล์มาเก็บไว้ในตัวแปร array

อ่านเพิ่มเติม
https://www.ninenik.com/php-manual/function.file.html

ส่านฟังก์ชัน is_array ก็ใช้ตรวจสอบว่า เป็น array หรือไม่

ซึ่งถ้าคำสั่ง file อ่านค่าไฟล์มาแล้วก็จะเป็นในตัวแปร array และก็จะคืนค่าเป็น array  จากนั้นก็เช็คด้วย is_array ว่าคืนค่าเป็น array หรือไม่ ถ้าเป็น array แสดงว่ามีไฟล์นี้อยู่จริง

อ่านเพิ่มเติม
https://www.ninenik.com/php-manual/function.is-array.html



ninenik 124.120.11.xxx 13-06-2010
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ