2011-03-26 7 views
9

करना है कि मैं इसphp का उपयोग कर ब्राउज़रों

http://www.example.com/Data/image/office-dôn-sì-à.jpg 

मैं अपने सर्वर php में प्रतिलिपि फ़ंक्शन का उपयोग करने के लिए है कि फाइल कॉपी करना चाहते हैं की तरह एक यूआरएल है यूआरएल एन्कोड करने के लिए कैसे। तो पहली बात यह है (मैं ब्राउज़रों एक ही बात कर लगता है)

http://www.example.com/Data/image/office-d%C3%B4n-s%C3%AC-%C3%A0.jpg 

यह करने के लिए उसे एन्कोड करना है लेकिन अगर मैं समारोह का उपयोग urlencode, पूर्ण यूआरएल

http%3A%2F%2Fwww.example.com%2FData%2Fimage%2Foffice-d%C3%B4n-s%C3%AC-%C3%A0.jpg 

है जो करने के लिए इनकोडिंग किया जाएगा अब एक यूआरएल नहीं है और जो मैं चाहता हूं वह नहीं।

किसी भी मदद की?

+0

क्या आप ** HTTP रैपर का उपयोग करके ** किसी अन्य सर्वर से फ़ाइल को डाउनोड करना चाहते हैं? http://php.net/manual/en/wrappers.php - आपको यूआरएल कैसे मिलता है? – vbence

+0

एन्कोडेड यूएलआर को एफएफ में एड्रेस बार से कॉपी किया गया है। गोपनीयता के कारण मैंने अपना होस्ट नाम बदल दिया। मैं फ़ाइल का प्रतिलिपि बनाना चाहता हूं: 'प्रतिलिपि ('http://www.example.com/Data/image/office-d%C3%B4n-s%C3%AC-%C3%A0.jpg', ' destination.jpg '); ' – user342960

+0

यदि आप सुनिश्चित हैं कि केवल अंतिम टुकड़ा (फ़ाइल नाम) में विशेष वर्ण होंगे तो आप रसेल के समाधान का उपयोग कर सकते हैं। – vbence

उत्तर

9

तो, यहां दिए गए अन्य उत्तरों ने आपकी पोस्ट को बड़े पैमाने पर अनदेखा कर दिया है, ऐसा लगता है। आइए आशा करते हैं कि मैंने ऐसा नहीं किया है।

ऐसा लगता है कि आप केवल बेसनाम को एन्कोड करना चाहते हैं? यदि यह सत्य है, तो इस विज्ञापन-कार्य फ़ंक्शन को चाल करना चाहिए:

function encode_basename($url) { 
    $url = explode('/', $url); 
    $base = array_pop($url); 

    return implode('/', $url) . '/' . urlencode($base); 
} 
//returns: http://www.example.com/Data/image/office-d%25C3%25B4n-s%25C3%25AC-%25C3%25A0.jpg 
+0

पूरी तरह से काम नहीं करता है ... –

+0

फ़ंक्शन encode_basename ($ url) { $ url = विस्फोट ('/', $ url); $ base = array_pop ($ url); रिटर्न इंपोड ('/', $ url)। '/'। rawurlencode ($ आधार); } –

+0

rawurlencode() का उपयोग करें –