2010-07-12 13 views
5

क्या कोई तरीका है कि मैं एक लिंक स्थान बिल्कुल प्रदर्शित कर सकता हूं जब मैं केवल अपेक्षाकृत संदर्भित करता हूं।एक लिंक को पूर्ण स्थान प्रदर्शित करना

आईई। एक फ़ाइल अपेक्षाकृत तरह संदर्भित है ...

<a href='../../files/uploaded_file.jpg'>Your Uploaded File</a> 

लेकिन मैं यह भी प्रदर्शित करने के लिए कुछ पाठ कह चाहते हैं ...

You can link to your file via www.example.com/files/uploaded_file.jpg 

पकड़ जा रहा है मैं स्पष्ट रूप से राज्य के लिए क्या डोमेन है चाहते हैं, क्योंकि स्क्रिप्ट को संपादित करने की आवश्यकता के बिना विभिन्न डोमेनों पर लिपि का उपयोग किया जाएगा।

असल में मैं किसी लिंक पर होवर करते समय फ़ायरफ़ॉक्स की स्टेटस बार में देखे गए टेक्स्ट को प्रतिबिंबित करना चाहता हूं।

उत्तर

1

एक कार्य करें:: http://www.web-max.ca/PHP/misc_24.php

इस एक भी कम है

var_dump ($ _ सर्वर);

और आप देखेंगे कि आप डोमेन यूआरएल के रूप में किस पर भरोसा कर सकते हैं।

0

यदि कोई लिंक सापेक्ष है, तो आप इसे वर्तमान होस्ट + पथ में PHP में उपसर्ग कर सकते हैं। /../ जैसे सापेक्ष यूआरएल भागों को हल करने के लिए आपको पथ को प्रारूपित करना होगा, एक साधारण लूप यह करेगा।

1
<a href="<?php echo 'http://'.$_SERVER['HTTP_HOST'] . '/files/uploaded_file.jpg'; ?>">Your file</a> 
1

मान लीजिए कि उदाहरण कोड वाला पृष्ठ साइट की जड़ से दो निर्देशिका गहरा है।

http://www.example.com/one/two/example-page.php 

तो आप ऐसा कर सकते हैं:

<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'], ENT_QUOTES)?>/files/uploaded_file.jpg'>Your Uploaded File</a> 

हैं कि इस धारणा गलत है और फ़ाइलों को एक निर्देशिका है कि कम से कम एक निर्देशिका जड़ जैसे की तुलना में गहरी है में जमा हो जाती

http: //www.example.com/content/files/uploaded_file.jpg 

तो आपको पूर्ण यूआरएल प्राप्त करने के लिए थोड़ा और काम करना होगा।

<?php 
$FilesystemPath = str_replace("\\", "/", realpath(dirname(__FILE__) . "/../../files/")) . "/uploaded_file.jpg"; 
$DocRoot = $_SERVER['DOCUMENT_ROOT']; 
$Uri = str_replace($DocRoot, '', $FilesystemPath); 
?> 
<a href='http://<?php echo htmlentities($_SERVER['SERVER_NAME'] . $Uri, ENT_QUOTES)?>'>Your Uploaded File</a> 

यह उदाहरण मानता है कि आप जानते हैं कि फाइल निर्देशिका निर्देशिका में है जो पृष्ठ की निर्देशिका से दो निर्देशिकाएं हैं।

इन सभी उदाहरणों में फ़ाइल सिस्टम पर निर्देशिकाओं में से एक को मैपिंग करने का अनुमान है और कोई यूआरएल पुनर्लेखन जारी नहीं है। साथ ही मुझे लगता है कि आप केवल सादे http का उपयोग कर रहे हैं और https नहीं। यदि आप उसी प्रोटोकॉल में लिंक पेश करना चाहते हैं, तो पेज के तहत क्या किया जाता है, तो यह एक अलग सवाल है।