2009-11-09 87 views
1

首先感謝那些誰這個問題的回答,在PHP中調用aspx怎麼樣?

現在我正在打電話的aspx的反之亦然在PHP

我希望你能幫助我。

這是我的代碼

<html> 
<body> 

<?php 
include("Default.aspx"); 
?> 

</body> 
</html> 

,但它一直給我

<%@頁面語言的輸出= 「C#」 AutoEventWireup = 「真」 的CodeFile = 「Default.aspx.cs」 繼承= 「_默認」 %> <% 的Response.Write( 「世界,你好!」); %>

我只需要在網站上運行hello world。

感謝ü

+2

這是完全錯誤的。 – 2009-11-09 12:44:44

+0

選擇一種語言並使用它。使用ASP和PHP來構建像這樣的網站是相當奇怪的。 – ceejayoz 2009-11-09 16:33:22

回答

5

如果你想在aspx文件的輸出,你需要通過一個Web服務器可以理解的aspx文件而不是文件系統中,例如要求它

include("http://example.com/Default.aspx"); 

你的PHP安裝必須已啓用URL fopen wrappers這個工作。

由於馬格努斯Nordlander的另一種回答指出,你應該只,如果你希望找到該文件中的PHP代碼使用include。如果不這樣做,你可以簡單地使用readfile輸出數據逐字:

readfile("http://example.com/Default.aspx"); 
1

你似乎在一個非常錯誤的辦法是想這件事。

什麼包括()(和require(),對於這個問題)做的是,它與解析PHP解釋器指定的文件。如果由於某種原因,你的aspx代碼生成PHP代碼,這是應該由PHP解釋器進行解析,然後保羅·迪克森暗示的方式將是要對這個正確的方式。不過,我反對這樣做強烈建議。

一方面,這是一個巨大的安全災難即將發生。從架構上講,這也是非常糟糕的。

如果要包括HTML標記等使用的aspx生成的,你應該做的是使用

echo file_get_contents("http://www.example.com/Default.aspx"); 

這樣一來,在輸出任何PHP代碼仍然未分析,從而避免了上述的安全災難。但是,如果你不需要混合這樣的語言,那麼這可能會是一個更好的解決方案。

+0

雖然你說的很對,你假設的Default.aspx的輸出是不可信的。如果是這樣的話,那麼即使使用的file_get_contents是一個壞主意 - 基於利用JavaScript可以被傳遞到客戶端。 – 2009-11-09 16:28:26

+0

這也是一個好點。清理提取的響應肯定是明智的。我只是說通過eval()運行代碼是不必要的,並增加了另一個攻擊向量。 無論如何,它只是進一步表明,這整個命題只是一個壞主意。 – 2009-11-09 16:44:33

+0

threat一個很酷的答案,其工作正常與aspx中的控件和標籤,但我需要從.aspx .p​​hp中顯示一個圖像,它不顯示好:( – user197252 2009-11-10 08:20:14