2013-07-19 8 views
10

मेरे पास एक php फ़ाइल है जिसे मैं इसे नहीं पढ़ सकता क्योंकि सभी चर/कार्यों में अजीब नाम हैं! मेरी फाइल के समारोह का एक ब्लॉक है: मुझे पता हैअजीब चर/विधि/वर्ग नाम - PHP

public static function    …………  …… …  ($   ………  …  ……  , $   …… ………  ……  ) 
{ 
    $   …… ……   ……   = strpos(   …………… … ……  ::   ……… ……… …   ($   ………  …  ……  ) , $   …… ………  ……  ); 

    return (false !== $   …… ……   ……  ) ? (int)floor($   …… ……   ……  /4) : false; 
} 

के रूप में php मानकों varaible नाम पर डॉट्स और रिक्त स्थान का उपयोग करने की अनुमति नहीं है।

character encoding से संबंधित कुछ है तो मैं खुद ही आया था! जैसा कि मैंने पाया, फ़ाइल एन्कोडिंग windows-1252 है।

क्या ये डॉट और रिक्त स्थान कुछ पठनीय में परिवर्तित हो सकते हैं?

क्योंकि वे चर/कार्य हैं, उनके पास फ़ाइल में एक से अधिक घटनाएं हैं।

संपादित # 1

मैं हमेशा नोटपैड के साथ ++/Widnows ओएस के तहत उदात्त पाठ की तरह फ़ाइल को खोलने और यह भुगतान किया या कुछ और नहीं है।

संपादित # 2

स्क्रिप्ट समस्या के बिना काम करता है! फाइल करने के लिए

संपादित # 3

लिंक: https://www.dropbox.com/s/hoegvk0vz53cnyn/include.php

+3

आपको यह फ़ाइल कहां से मिली? क्या आपको वास्तव में लाइसेंस प्राप्त करने के लिए इसे संशोधित करने की अनुमति मिलती है? स्पष्ट रूप से जो भी इसे प्रदान करता है उसे परेशान करने के लिए कुछ परेशानी होती है। आप निश्चित रूप से जंक को अधिक पठनीय पात्रों के साथ प्रतिस्थापित कर सकते हैं, लेकिन उपयोगी चर नामों के साथ नहीं जब तक कि आप समझें कि कोड क्या कर रहा है। – geoffspear

+0

जब आप यूटीएफ 8 का उपयोग करते हैं तो क्या होता है? क्या डॉट्स रहते हैं? मेरे विचार यह होगा कि यह संभव नहीं है। यह नमूना कहां से आया है? क्या आप लेखक से आपको एक नई प्रतिलिपि भेजने के लिए कह सकते हैं? –

+0

आपको यह फ़ाइल कहां से मिली? ऐसा लगता है कि किसी भी तरह जानबूझकर – bmurauer

उत्तर

6

ऐसा लगता है कि आपकी "रिक्त स्थान" और "बिंदु" वे दिखाई नहीं दे रहे हैं। आपके प्रश्न में पोस्ट किए गए कोड में, ये वास्तव में "गैर-ब्रेकिंग-स्पेस" (सी 2 ए0) और "एलिप्सिस" (ई 2 80 ए 6) हैं। ये एक पहचानकर्ता में पूरी तरह मान्य पात्र हैं।

(धन्यवाद 100% यूटीएफ -8 संगत होने के लिए स्टैक ओवरव्लो)।

[संपादित करें]

... लेकिन फ़ाइल आप लिंक को देखा है, फ़ाइल इनकोडिंग बल्कि विंडोज़ -1252 (उर्फ। CP1252) है। उत्तर अभी भी सही है, लेकिन उपरोक्त वर्णित उन बाइनरी मानों से थोड़ा अलग है।

+0

... और मुझे लगता है * आपकी फ़ाइल का वास्तविक एन्कोडिंग यूटीएफ -8 है। – RandomSeed

+0

तो कहानी यह है कि, वे वैध पात्र हैं! – revo

+1

@revo हां, लेकिन आपकी फ़ाइल वास्तव में विंडोज -1252 में एन्कोड की गई है, जैसा कि आपने पाया था। – RandomSeed

3

यहाँ यह थोड़ा और अधिक पठनीय कुछ में बदल जाती है।

public static function ………… …… … ($a , $b) 
{ 
    $c = strpos(some_class::some_function($a), $b); 
    return (false !== $c) ? (int)floor($c/4) : false; 
} 

अन्य फ़ंक्शन को देखे बिना संदर्भ या त्रुटि संदेश देता है यह देखना मुश्किल होगा कि यह क्यों विफल हुआ।

हालांकि यह कोड जानबूझकर किसी कारण से obfuscate किया गया है। शायद लोगों को झुकाव रोकने के लिए या शायद क्योंकि यह लाइसेंस प्राप्त है। यदि यह काम नहीं करता है तो आपको लेखक से संपर्क करने का प्रयास करना चाहिए।

+0

अच्छा साफ +1 – defaultNINJA

संबंधित मुद्दे