我正在做一個php入口。PHP如何使一個上傳的文件鏈接是內部IP時,內部和公共IP時公開與我得到這個片段?
我做了一個公告部分,用戶可以發佈消息並附加文件。
所以在這種情況下,用戶上傳一個頁面,將有附件的超鏈接。如果我在它懸停,我可以看到這個「192.168.0.100/Announcement/file.pdf」
所以邏輯上,如果IM在內部網絡中,並點擊它不會是一個問題,因爲它可以從文件那個ip。
接下來的情況是我已經轉發了服務器ip讓公衆可以從外面訪問。現在我是作爲從外部訪問的用戶。
所以,如果我是去宣佈的位置和懸停在它再次將表現出同樣的鏈接「192.168.0.100/Announcement/file.pdf」。因爲ip是內部的,我一定不能打開它。
所以我想我怎樣才能讓它當我內部的IP是內部一個,當IM外,IP鏈路是公衆?
我從前同事那裏得到了這個片段,但我真的不知道代碼的作用。有人可以幫我解釋一下嗎?我試圖搜索這個東西,我想在網上做,但我沒有一個適當的關鍵字。
下面是片段:
<?php
//filename constant.php
define('SERVERIP',((preg_match("/^192\.168/i",$_SERVER['REMOTE_ADDR']))?'192.168.0.100':'175.136.xxx.xxx'),true);
?>
而且下面是在頁面的代碼用於公告及附件的一部分:
include('_include/constant.php');
$dir = "C:/Inetpub/wwwroot/Announcement/";
$http = sprintf('http://%s/Announcement/',SERVERIP);
print '<td class="middle '.$CLASS.'" align="left" height="20">'.'<a href="http://'.SERVERIP.'/Announcement/'.$filename.'" target="_blank">'.$filename .'</a></td>';
這裏任何PHP專業人員可以幫助我明白髮生了什麼以便下次我知道我實際執行的是什麼?
Thnx @Mike Purcell !!我將閱讀該文檔。我明白你的解釋,現在我明白了。 – Psychocryo 2012-03-06 04:55:04
沒有問題。如果這有幫助,請接受。 – 2012-03-06 05:51:29