簡體   English   中英

包括另一個服務器的PHP文件

[英]Including a PHP file of another server

我正在嘗試通過PHP在兩台服務器之間進行通信。 可以說,我的本地主機上有一個PHP文件“ a.php”,而在遠程服務器上有另一個PHP文件“ b.php”。 我想在a.php中包含b.php。 我正在嘗試通過包含方法來提供remore服務器“ http://ip/b.php ”的完整路徑,但是沒有任何反應。 實際上,我想從a.php文件運行腳本的一部分,然后與b.php文件通信,然后返回到a.php文件。 請指導我如何執行此操作。 我知道有人問過類似的問題,但我嘗試使用這些技術解決此問題,但徒勞無功。

謝謝

不,此設置在大多數Web服務器(php.ini)中默認為禁用/不允許,因此出於安全原因,您不能使用include包含來自遠程地址的文件。

如果仍然要允許包含遠程文件,則必須在php.ini中將指令allow_url_include設置為On。

但是,從面向安全的角度來看,這又是一個壞習慣; 因此,通常將其禁用(實際上,我從未見過啟用)

但是,如果您想讀取遠程文件的內容,則可以使用file_get_contents函數來代替,但是它將以純HTML標記代碼的形式返回,不會有任何服務器端代碼。

包括來自另一個服務器的php文件和php

另一個解決方案是

  1. 將文件另存為文本文件,然后從中刪除。
  2. 使用file_get_contents訪問文件

http://ip/b.php-將此文件另存為b.txt

<?php 
    $filedata = file_get_contents('http://ip/b.txt');
    eval ("?>$filedata");
?>

盡管這是不安全和不道德的做法,但您始終可以使用.htaccess(關閉php_flag引擎)關閉特定目錄的php。

然后,您的文件將直接作為文本文件提供給任何知道url的人。 這樣,您可以通過allow_url_include或如Mad Angle所說的get_file_contets包括它們。

但是無論哪種方式-這都是一個壞主意。 所以你可以嘗試科學:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM