導航:首頁 > 編程語言 > php遠程文件是否存在

php遠程文件是否存在

發布時間:2022-04-29 11:06:22

php能不能判斷遠端HTTP伺服器上的文件是否存在 - 技術問答

file_exists(PHP 3, PHP 4, PHP 5)file_exists -- 檢查文件或目錄是否存在說明bool file_exists ( string filename )如果由 filename 指定的文件或目錄存在則返回 TRUE,否則返回 FALSE。 在 Windows 中要用 //computername/share/filename 或者 \\\\computername\\share\\filename 來檢查網路中的共享文件。

⑵ php判斷遠程文件能不能訪問

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
echo "Unable to open\n";
} else {

fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
stream_set_timeout($fp, 2);
$res = fread($fp, 2000);

$info = stream_get_meta_data($fp);
fclose($fp);

if ($info['timed_out']) {
echo 'Connection timed out!';
} else {
echo $res;
}

}
?>

⑶ php使用ftp上傳文件,怎麼檢測文件目錄是否存在

ftp_nlist()返回目錄下的文件列表。看看你所需要創建目錄是否存在。

⑷ PHP 網路開發詳解之遠程文件包含漏洞

以下代碼(Code)實現了根據瀏覽器地址欄參數的文件名稱包含不同文件的功能。
復制代碼
代碼如下:
<?php
$file_name
=
$_GET["filename"];
//獲得當前文件名
include("$file_name
");
//包含文件
//一些其他操作
?>
這時,通過在地址欄上指定不同的文件名就可以實現包含不同文件並執行的功能。例如,通過在瀏覽器上訪問http://localhost/test.php?filename=myinc.php就可以在代碼(Code)中包含並執行myinc.php文件。
由於上面的代碼(Code)沒有進行任何錯誤處理,在瀏覽器上不加參數運行,所以將得到以下運行結果。
Warning:
include(.php)
[function.include]:
failed
to
open
stream:
No
such
file
or
directory
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
Warning:
include()
[function.include]:
Failed
opening
'.php'
for
inclusion
(include_path='.;C:\Program
Files\xampp\php\pear\')
in
C:\Program
Files\xampp\htdocs\Bugs\test6.php
on
line
3
訪問者通過讀取這段錯誤信息,可以得知當前的操作是一個文件包含操作。這時,可以在自己的伺服器上放置一個相應的腳本代碼。需要注意的是PHP在獲取遠程文件時獲得的是遠程伺服器的最終輸出結果,而不是文件本身。該腳本代碼位於192.168.0.1伺服器上,文件名為hello.txt,腳本代碼(Code)如下所示。
復制代碼
代碼如下:
<?php
echo
"hello
world!";
?>
這時,通過在瀏覽器中訪問http://localhost/test.php?filename=http://192.168.0.1/hello.txt就可以運行hello.txt中的腳本了。
為了解決這個問題,一種方式是完善代碼的錯誤信息,使訪問者無法知道當前腳本正在包含參數中指定的文件。修改後的代碼(Code)如下所示。
復制代碼
代碼如下:
<?php
$file_name
=
$_GET["filename"];
//獲得當前文件名
if(!@include("$file_name.php"))
//包含文件
{
die("頁面在瀏覽過程中出現錯誤");
}
//一些其他操作
?>
修改後,如果在被包含的文件無法找到時將出現「頁面在瀏覽過程中出現錯誤」的錯誤信息,訪問者將無法獲得當前頁面的具體操作信息。
第二種方式可以更加有效地防止遠程文件包含攻擊。方式是替換地址欄參數中的斜線「/」。這樣,在地址欄參數中輸入遠程文件地址時,代碼將無法正確地獲得參數。修改後的代碼(Code)如下所示。
復制代碼
代碼如下:
<?php
$file_name
=
str_replace('/',
'',
$_GET["filename"]);
//獲得當前文件名
if(!@include("$file_name.php"))
//包含文件
{
die("頁面在瀏覽過程中出現錯誤");
}
//一些其他操作
?>
這樣,在瀏覽器中訪問http://localhost/test.php?filename=http://192.168.0.1/hello.txt
時,實際上PHP代碼(Code)獲得的包含文件名稱是http:192.168.0.1bugstest6_test。頁面將不會包含遠程文件,並顯示相應的錯誤信息。

⑸ PHP判斷遠程文件是否存在

功能:判斷遠程文件是否存在 參數: $url_file -遠程文件URL 返回:存在返回true,不存在或者其他原因返回false*/function remote_file_exists($url_file){//檢測輸入$url_file = trim($url_file); if (empty($url_file)) { return false; } $url_arr = parse_url($url_file); if (!is_array($url_arr) || empty($url_arr)){return false; } //獲取請求數據 $host = $url_arr['host']; $path = $url_arr['path'] ."?".$url_arr['query']; $port = isset($url_arr['port']) ?$url_arr['port'] : "80"; //連接伺服器 $fp = fsockopen($host, $port, $err_no, $err_str,30); if (!$fp){ return false; } //構造請求協議 $request_str = "GET ".$path."HTTP/1.1\r\n"; $request_str .= "Host:".$host."\r\n"; $request_str .= "Connection:Close\r\n\r\n";//發送請求fwrite($fp,$request_str); $first_header = fgets($fp, 1024); fclose($fp); //判斷文件是否存在

⑹ 如何用php判斷伺服器本地是否存在指定文件

file_exists好像是不能跨域
有一個不怎麼好的辦法,就是去訪問它一下
方法 :
$url="文件地址";
$hander_array = get_headers ($url);
if($hander_array[0] == 'HTTP/1.1 200 OK') {
return '<img src="'.UC_API.'/data/avatar/'.$avatarfile.'" >';
}
else{
return '<img src="'.UC_API.'/images/noavatar_'.$size.'.gif" >';
}

閱讀全文

與php遠程文件是否存在相關的資料

熱點內容
數學奇跡神奇運演算法 瀏覽:359
大廠的程序員的水平如何 瀏覽:700
遺傳演算法入門經典書籍 瀏覽:878
源碼炮台腳本 瀏覽:620
在位編輯命令 瀏覽:347
曲式分析基礎教程pdf 瀏覽:14
php生成靜態html頁面 瀏覽:964
怎麼分割pdf 瀏覽:812
壓縮垃圾報警器 瀏覽:628
小公司一般都用什麼伺服器 瀏覽:967
java獲取時間gmt時間 瀏覽:820
為什麼csgo一直連接不到伺服器 瀏覽:504
安卓登ins需要什麼 瀏覽:836
機器人演算法的難點 瀏覽:226
全自動化編程 瀏覽:726
程序員高薪限制 瀏覽:693
壓縮圖片壓縮 瀏覽:75
美國發明解壓魔方 瀏覽:302
電腦怎麼備案網上伺服器 瀏覽:515
旅行商問題Python寫法 瀏覽:952