是否有類/腳本/可能性來檢查網站的響應式設計?它可能是這樣的:PHP:檢查網站的響應式設計
if (is_responsive('http://www.site.tld')) {
echo 'is responsive';
}
else {
echo 'is not responsive';
}
任何想法?
是否有類/腳本/可能性來檢查網站的響應式設計?它可能是這樣的:PHP:檢查網站的響應式設計
if (is_responsive('http://www.site.tld')) {
echo 'is responsive';
}
else {
echo 'is not responsive';
}
任何想法?
這樣做有兩種可能*方式:
您可以使用JavaScript來檢測是否有你的CSS任何媒體查詢然後發送一個真/假變量使用Ajax
甚至可能使用您的服務器端語言來讀取您的CSS文件,並使用RegEx搜索文件中的任何媒體查詢。
這些方法都不能保證工作,實在是沒有「標準」,「安全」或「非hackey」這樣的方式,你也不能使用服務器端的技術,直接處理媒體查詢。
正則表達式的,你可以用它來搭配@media
規則是:
^\@media\s(.*?)\{$
^=斷言字符串的開始位置
\ @ =匹配字符@字面上
媒體=匹配字符媒體字面
\ s =匹配任何空格字符[\ r \ n \ t \ f]
。*? =匹配任何字符(除新行)
{=字符{字面上
$匹配=在字符串
\@media\s(.*?)\{
的端斷言位置\ @ =匹配的字符@字面上
媒體=與字符媒體字面匹配
\ s =匹配任何空格字符[\ r \ n \ t \ f]
。*?=匹配任何字符(除換行符)
{=字符{字面上
您也可以使用i
,使正則表達式的大小寫不敏感匹配(i
只忽略[A-ZA-Z的情況下, ])
下面是使用RegEx檢測@media
規則四種可能的方法:
/^\@media\s(.*?)\{$/
/^\@media\s(.*?)\{$/i
/\@media\s(.*?)\{/
/\@media\s(.*?)\{/i
從技術上說,您不能使用PHP腳本檢查響應能力,因爲它是客戶端的事情。
沒有!特別是在PHP中。 您可以嘗試解析CSS進行媒體查詢,或者檢查元素大小是否設置爲絕對值。
在我看來,有一些Web引擎運行服務器端,強制它使用不同的window.width渲染頁面,並檢查文檔寬度是否會隨之變化。這樣的模塊可以從PHP執行,但不能在PHP中完成。 - 如果你沒有專用服務器,忘記嘗試這樣的特技。
剛剛來過這個。雖然你的答案是舊的,但我很好奇......有一個專用的服務器與它有什麼關係? – CRAIG
@CRAIG拋開整個檢查響應性的問題(解析CSS中的@ @media是一個很好的指標,但不是最終的答案,因爲仍然可以在HTML中嵌入樣式,並且從javascript更改對象的屬性)。爲了確保你必須用不同的窗口大小渲染頁面(包括運行js)(mabe也欺騙用戶代理)並檢查寬度是否正確改變。它不能在香草php中完成。遠遠超出共享主機服務所強加的限制。至少少於虛擬機的任何東西都是不合適的+它是非常重要的資源。 – StormRideR
也許你可以掃描他們的'@ media'選擇器的樣式表 – Jer
一種方法是獲取CSS並檢查是否存在媒體查詢。但是再次,媒體查詢可以用於很多事情,你必須解析它們,並確定它們是否實際響應不同的屏幕尺寸。 – Eihwaz
不,因爲'響應性'是客戶端的事情,用於實現'響應性'的技術不僅僅用於爲網站添加'響應性'。 –