鑰匙要點
- 文本中演示的PHP腳本允許自動生成具有瀏覽器特定前綴的CSS3屬性,以及CSS文件的壓縮以改進頁面加載時間,而無需其他工具。 腳本通過用一組特定於瀏覽器的前綴屬性替換CSS文件中的下劃線預定屬性,然後將CSS文件串聯和壓縮以減少服務器請求和不必要的白色空間。
- 該腳本可以與其他CSS預處理器(如SASS或更少)一起使用,其好處包括改進的網站性能和不同瀏覽器的兼容性,以及節省手動添加供應商前綴和壓縮CSS文件的時間和精力。 有很多方法可以壓縮CSS文件或自動生成瀏覽器特定的CSS3前綴,但通常使用了額外的工具,這很煩人。我想向您展示如何僅使用PHP完成此類任務。在本文中,我們將看到如何:
- >生成具有瀏覽器特定前綴的CSS3屬性
- >
- >當請求網頁時執行該過程 >
<span>_border-radius: 10px;</span>該代碼將生成這樣的屬性列表:
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>然後,在HTML中,以這樣的方式編寫了一個鏈接以導入樣式:
<span><span><span><link> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span></span>使用單個鏈接元素,將將三個CSS文件加載為一個。 CSS.PHP腳本將在列出的文件中讀取(css_file1.css,css_file2.css和css_file3.css),組合它們並將其返回為單個文件。 看起來很容易使用,對嗎?因此,有了進一步的ADO,讓我們開始編寫一些代碼!
編寫代碼
繼續使用以下代碼創建文件CSS.PHP:<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;該代碼首先接收到要從URL參數中處理為字符串的CSS文件列表(在PHP中可訪問為$ _GET [“ F”])。每個文件都用管道形式分開。 Explode()函數將返回文件名數組的管道上的字符串拆分。 功能file_get_contents() 將每個文件的內容接一個地添加到變量$內容上。 在檢索了CSS文件的內容後,下一步是找到以下劃線開頭的任何CSS屬性,並用特定於瀏覽器的前綴屬性替換它們。函數preg_match_all()找到匹配正則表達式的文本中的所有零件,並將匹配項放入$匹配[0]作為數組中。 我不會解釋為什麼$ Matches具有數組索引0,因為您可以閱讀有關PHP手冊中該功能的明確說明。相反,我想專注於解釋我們計劃的流程。 此圖像解釋了正則表達式的模式:
使用腳本
我想為您提供一個簡單的用法示例,以示例我們剛剛製作的腳本。放置CSS.PHP 進入CSS目錄,以及這三個CSS文件。 第一個文件是header.css:<span>_border-radius: 10px;</span>第二個文件是Center.css:
<span>-o-border-radius: 10px; </span><span>-moz-border-radius: 10px; </span><span>-webkit-border-radius: 10px; </span><span>border-radius: 10px;</span>第三個文件是頁腳:css:
<span><span><span><link> rel<span>="stylesheet"</span> href<span>="css/css.php?f=css_file1|css_file2|css_file3"</span>></span></span></span>看看如何編寫CSS3屬性;那些具有特定於瀏覽器的前綴的人只給出了一次,並且在它們面前有一個下劃線。 接下來,創建將使用樣式的文件索引索引。
<?php $files = explode("|", $_GET["f"]); $contents = ""; foreach ($files as $file) { $contents .= file_get_contents($file . ".css"); } preg_match_all('/_[a-zA-Z-]+:s.+;|[a-zA-Z-]+:s_[a-zA-Z].+;/', $contents, $matches, PREG_PATTERN_ORDER); $prefixes = array("-o-", "-moz-", "-webkit-", ""); foreach ($matches[0] as $property) { $result = ""; foreach ($prefixes as $prefix) { $result .= str_replace("_", $prefix, $property); } $contents = str_replace($property, $result, $contents); } $contents = preg_replace('/(/*).*?(*/)/s', '', $contents); $contents = preg_replace(array('/s+([^w'"]+)s+/', '/([^w'"])s+/'), '', $contents); header("Content-Type: text/css"); header("Expires: " . gmdate('D, d M Y H:i:s GMT', time() + 3600)); echo $contents;查看鏈接標籤中的HREF屬性。每個CSS文件名都被管道隔開。
結論
在本文中,我向您展示瞭如何使用PHP對CSS進行一些常見的操作。該腳本在很大程度上依賴於正則表達式,這是一種非常強大的語言,使我們能夠操縱字符串,但是我們認為合適。總體而言,該腳本非常簡單,但提供了許多好處。嘗試在下一個項目中使用它。 圖像通過1xpert / shutterstock關於CSS3前綴和壓縮機的常見問題
> CSS3前綴和壓縮機的目的是什麼?它會自動將供應商的前綴添加到CSS屬性中,以確保它們在不同的瀏覽器上工作。壓縮機功能通過消除不必要的字符來降低CSS文件的大小,從而提高網站的加載速度。
>>如何使用CSS3前綴和Compressor工作?
a css3 prefixer和壓縮機通過掃描CSS for properties for Properies for Properies prefix verefix verefix vendor.然後,它會自動添加這些前綴,從而節省您手動進行的時間和精力。壓縮機功能通過刪除CSS文件中的空格,評論和線路斷裂等不必要的字符來起作用,從而降低了它們的尺寸。 >為什麼我要使用CSS3 prefixer和壓縮機可以很好地使用CSS3前綴和壓縮機?它確保您的CSS屬性在不同的瀏覽器上工作,並減少CSS文件的大小,從而提高網站的加載速度。它還為您節省了手動添加供應商前綴和壓縮CSS文件的時間和精力。>
使用CSS3前綴和壓縮機嗎?
>
>>>
>>>>,而CSS3 prefixer和Compressor提供了許多好處,重要的是要注意,可能並不總是必要的。一些現代瀏覽器不再需要某些CSS屬性的供應商前綴。另外,過度壓縮您的CSS文件可能會使它們難以讀取和維護。
>如何使用CSS3前綴和壓縮機?
>> >
使用CSS3 prefixer和Compressor,您只需要將CSS文件輸入到工具中即可。然後,它將自動添加必要的供應商前綴並壓縮您的文件。一些工具還提供了其他功能,例如降低和優化。 >我可以與其他CSS前綴和壓縮機一起與其他CSS預處理器一起使用?是的,您可以將CSS3前綴和壓縮機與其他CSS使用SASS或SASS(如SASS)一起使用。該工具將簡單地添加必要的供應商前綴並壓縮輸出的CSS文件。
>有哪些良好的CSS3前綴和壓縮機工具?
>
有許多良好的CSS3 prefixer和Compressor工具可用,包括AutoPrefixer,PostCSS和CSS驅動器。這些工具提供了一系列功能,可以與各種CSS預處理器一起使用。>
>如何選擇正確的CSS3前綴和壓縮機工具? 在選擇CSS3前綴和壓縮機工具時,請考慮與CSS Prefrocessor and corprocessor andsorcesor ands of Rancesor,and rance of Formansosor,and rance of Formansoser,以及該範圍,並提供範圍。您還應該考慮該工具的性能和可靠性。 >我可以將CSS3前綴和壓縮機用於大型CSS文件嗎?但是,請記住,對於較大的文件,處理時間可能更長。 >>是否有必要為每個項目使用CSS3前綴和壓縮機?以上是自動CSS3前綴和壓縮機的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

Laravel的服務容器和服務提供商是其架構的基礎。 本文探討了服務容器,詳細信息服務提供商創建,註冊,並通過示例演示了實際用法。 我們將從OVE開始


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。