2013-02-22 61 views
5

मैंने php.net चेक किया और urlencode() काम करता है के कुछ उदाहरण पढ़ें लेकिन किसी भी तरह से मैं इसे सही नहीं समझ सकता। क्या कोई मुझे हाथ दे सकता है?मेरे उदाहरण में urlencode() का उपयोग कैसे करें?

यह उदाहरण के लिए बहुत कुछ होगा, इसलिए उम्मीद है कि मेरा संक्षिप्त उदाहरण समझ में आएगा।

मेरे पास 2.php नामक एक पृष्ठ है और इसे 1.php में .txt फ़ाइल की कुछ सामग्री दिखाने के लिए बुलाया गया था।

मैं 3.php के लिए एक लिंक बनाने के लिए बताया गया है और कड़ी के रूप में GET पैरामीटर नाम फ़ाइल नाम के साथ /3?filename=a.txt की तरह कुछ देखने के लिए और सुनिश्चित करें GET पैरामीटर मान urlencoded है urlencode() फ़ंक्शन का उपयोग करना चाहिए।

लेकिन मुझे उलझन में है कि मुझे यह काम करने के लिए urlencode() को कैसे और कहाँ रखा जाना चाहिए।

मैं अपने 2.php कोड यहाँ पेस्ट करना होगा ... मैं कोड को सरल बनाया एक सा ...

<?php 

$fileContents = file("./aaa/" . $_GET["course"] . ".txt"); 

echo "<table border=\"1\">"; 

foreach($fileContents as $row) 
{ 
    echo "<tr>"; 
    $contents = preg_split("/,/", $row); 

    foreach($contents as $eachline) 
    { 
     echo "<td>"; 
     if(!(preg_match("/@/", $eachline))) 
     { 
     echo trim(ucfirst($eachline)); 
     } 
     else 
     { 
     echo trim(strtolower($eachline)); 
     } 
     echo "</td>"; 
    } 
    echo "</tr>"; 
} 

    echo "</table>"; 

    echo "<a href='./1.php'>Choose another txt file</a><br/>"; 
    echo "or<br/>"; 
    echo "<a href='.3.php?'>Work with this txt file</a>"; 
?> 

लेकिन ... 3.php विकल्प एक क्वेरी स्ट्रिंग इसके परिशिष्ट में होना चाहिए: टेक्स्ट फ़ाइल का नाम जिसे 1 में चुना गया था, इसलिए ./3.php के बजाय, यूआरएल कुछ ऐसा होना चाहिए जैसे ./3?filename=asdf.txt

GET पैरामीटर नाम के रूप में "फ़ाइल नाम" का उपयोग करें। सुनिश्चित करें कि जीईटी पैरामीटर मान urlencode() फ़ंक्शन का उपयोग करके urlencoded है।

लेकिन मैं सिर्फ यकीन है कि यह कैसे काम करने के लिए नहीं कर रहा हूँ ....

+0

आपको कोड पेस्ट करें। –

+0

ध्यान दें कि यह सिस्टम रिमोट फ़ाइल समावेशन के लिए कमजोर हो सकता है, अगर सही ढंग से –

+0

चिपकाया नहीं गया है .... लेकिन इसे सरल बना दिया गया है इसलिए पढ़ने के लिए बहुत कुछ नहीं है लेकिन उम्मीद है कि – Dora

उत्तर

4

आप बात यह है कि स्ट्रिंग के भीतर समारोह में इनकोडिंग यूआरएल होना चाहिए लपेट कर सकते हैं:

$url = 'http://www.google.com?q=' . urlencode($search); 

OR in html 

http://www.google.com?q=<?php echo urlencode($search); ?> 

कहाँ . 2 आउटपुट का समापन है।

+0

स्पष्ट किया है लेकिन $ खोज के बारे में कैसे? हालांकि यह क्या होना चाहिए? आउटपुट क्या है? और ओह हमें लिंक में गूंजने की अनुमति है? (क्षमा करें मैं php के लिए पूरी तरह से नया हूँ। अभी भी सीखना) – Dora

+0

मुझे लगता है कि मैं इसे प्राप्त करना शुरू कर रहा हूं। लेकिन अगर मैं इसे इस तरह से करता हूं ... $ url = "./3.php?filename="। urlencode ($ _ प्राप्त करें ["aaa"]। ".txt"); मुझे लगा कि अगर मैं $ _GET ["filename"] का उपयोग करता हूं तो मुझे $ _GET ["aaa"] के समान परिणाम देगा। क्या यह urlencode का उपयोग करने के लिए भी एक अच्छा परिणाम है? क्योंकि अगर मैं सिर्फ 3.php में $ _GET ["aaa"] का उपयोग करता हूं तो मूल्य नहीं मिला क्योंकि यह लिंक नहीं है बल्कि "./3.php?filename=" की सहायता से। urlencode ($ _ प्राप्त करें ["aaa"]। ".txt"); मैं $ _GET ["aaa"] के पैरामीटर को 3.php में ले जा सकता हूं – Dora