2011-04-06 10 views
8

इसके लिए वेब पर कुछ भी नहीं मिला है, सवाल बाहर फेंकना चाहता था।सीएसएस मीडिया क्वेरीज़ का PHP संस्करण

सीएसएस मीडिया क्वेरीज़ का एक PHP संस्करण है?

+2

हालांकि मैं थोड़ी उत्सुक हूं, आप क्या हासिल करने की कोशिश कर रहे हैं? – whoughton

+0

मोबाइलईएसपी का उपयोग करके और विशिष्ट संकल्पों को लक्षित करना चाहता था न केवल डिवाइस के साथ ही PHP –

+0

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

उत्तर

2

मुझे लगता है कि आप मोबाइल ब्राउज़र का पता लगाने के उद्देश्य से ऐसा करना चाहते हैं - यदि नहीं, तो यह उत्तर थोड़ा अप्रासंगिक है।

आप मोबाइल उपयोगकर्ता एजेंट पहचान पुस्तकालय के लिए Mobile ESP देख सकते हैं। मेरे अनुभवों में उपयोग करना और काम करना बहुत आसान है।

+0

हाँ मैंने इसे देखा है और मुझे यह पसंद है लेकिन यह विशिष्ट डिवाइस का पता लगाने की पेशकश नहीं करता है। आईफोन 4 रेटिना डिस्प्ले जैसे मोबाइल डिवाइस को विशिष्ट कार्यक्षमता प्रदान करने के लिए सीएसएस मीडिया क्वेरीज़ के साथ इसे गठबंधन करना चाहता था। मुझे पता है कि मैं इसे सीएसएस के साथ कर सकता हूं लेकिन मैं फ़ाइल आकार को –

+0

पर रखने के लिए इसे गतिशील रूप से लोड करना चाहता था बस अगर कोई और इस मार्ग पर जाना चाहता है, तो https://github.com/serbanghita/Mobile-Detect –

1

आप $_SERVER['HTTP_USER_AGENT'] देख सकते हैं और जो भी वहां पाते हैं उसके आधार पर निर्णय ले सकते हैं। वहां कहीं भी एक लाइब्रेरी हो सकती है जो पहले से ही इसका ख्याल रखती है, लेकिन मुझे अपने सिर के ऊपर से एक के बारे में पता नहीं है।

2

नहीं, ऐसा नहीं है।

ब्राउज़र सर्वर पर अपने किसी भी media features पर जानकारी नहीं भेजता है, इसलिए PHP में इसे लागू करने के लिए आवश्यक जानकारी नहीं है।

1

get_browser PHP फ़ंक्शन है जिसका उपयोग आप कुछ ब्राउज़र क्षमताओं को निर्धारित करने के लिए कर सकते हैं। लेकिन यह मीडिया प्रश्नों की तरह नहीं है। सीएसएस मीडिया प्रश्न डिवाइस डिस्प्ले माप के लिए सशर्त हैं। PHP फ़ंक्शन ऐसी सूचनाएं वापस नहीं करता है।

2

मैंने एक विधि का उपयोग किया है (http://php.net/manual/en/faq.html.php उदाहरण # 4 पर पाया गया है) जो मीडिया प्रश्नों के लिए वैकल्पिक विकल्प प्राप्त करने के लिए जावास्क्रिप्ट और PHP को जोड़ता है। मैं एक चर (स्क्रीन.विड्थ) पोस्ट करने के लिए अपने PHP के अंदर एम्बेडेड जावास्क्रिप्ट का उपयोग कर इसे प्राप्त करता हूं जिसे स्टाइलशीट लोड करने के लिए ब्रेकपॉइंट्स निर्धारित करने के लिए PHP द्वारा उपयोग किया जाता है।

<?php 
    if (isset($_GET['width'])) { 
    $width = $_GET['width']; 
    if ($width <= 480) { //mobile devices 
     $style = '<link rel="stylesheet" href="mobile.css" type="text/css">'; 
    } elseif ($width <= 720){ //tablets 
     $style = '<link rel="stylesheet" href="tablet.css" type="text/css">'; 
    } else { //desktops 
     $style = '<link rel="stylesheet" href="desktop.css" type="text/css">'; 
    } 
    echo $style; 
    } else { 
     echo "<script language='javascript'>\n"; 
     echo " location.href=\"${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}" . "&width=\" + screen.width; \n"; 
     echo "</script>\n"; 
     exit(); 
    } 
?> 

मैं का उपयोग कर इस विधि भी एक पृष्ठ की सामग्री लोड पर अधिक कुशल था, मीडिया के प्रश्नों के विपरीत (जो सभी उपकरणों के लिए सीएसएस शैलियों लोड होगा तब भी जब यह नहीं है पाया: अपने सिर टैग में निम्नलिखित स्निपेट शामिल करें आवश्यक - यानी मोबाइल डिवाइस अभी भी डेस्कटॉप शैलियों को लोड करते हैं)। यह विधि यह सुनिश्चित करती है कि स्टाइलशीट अकेले डिवाइस के लिए विशिष्ट लोड हो जाएं, मान लें कि आपके पास स्टाइलशीट है जिसमें सभी मीडिया उपकरणों के लिए सामान्य स्टाइल है।

+0

सुवी देखें Vignarahah इसे साझा करने के लिए धन्यवाद। मैं php का उपयोग कर मीडिया क्वेरी का पता लगाने का एक तरीका ढूंढ रहा हूं। बहुत बढ़िया!!! –

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