php 代碼長格式化擴展PHP中用來解析和轉(zhuǎn)換YAML格式的擴展格式php 代碼加密 擴展
2021-11-30
老實說,我很少使用 YAML。在學習自動化測試相關內(nèi)容的時候,接觸過使用這個配置文件配置CI的持續(xù)集成操作。當然,當時主要是學習。雖然接觸的不多,但我也知道,這種配置格式的寫法現(xiàn)在已經(jīng)基本成為主流了。所以這里就不多解釋具體的yaml相關內(nèi)容了,不太熟悉的同學可以自行查閱一些相關文檔。
我們今天學習的主要是PHP中用于解析和轉(zhuǎn)換YAML格式的擴展。安裝過程沒有什么特別的,就跟其他擴展一樣安裝就行了。但是這個擴展需要一個-,不能直接通過yum或者dnf安裝,下載地址可以在文末鏈接中找到。
將 PHP 數(shù)據(jù)轉(zhuǎn)換為 YAML
將PHP數(shù)據(jù)轉(zhuǎn)化為YAML,其實和JSON相關的操作類似,將一個數(shù)組轉(zhuǎn)化為YAML格式的字符串。
$addr = ("" => "",""=> "",""=> (""=> "458 Dr. #292","city"=> "Oak",""=> "MI ",""=> ,),$ = (""=> ,"date"=> ,"bill-to"=> $addr,"ship-to"=> $addr,""=> ((" sku"=> "",""=> 4,""=> "籃球",""=> 450,),("sku"=> "",""=> 1,""=> "籃球",""=> 2392,),),"tax"=> 251.42,""=> 4443.52,""=> "遲到最好。
是@ 338-4338。",$ = ($);($);// (624) "---//: // date: // bill-to://: //: //://: |-// 458 Dr.// #292// 城市:橡樹//:MI//:// 運送到://://://://:|-// 458 博士// #292//城市:橡樹//:MI//://://-sku://:4//:“\\”//:450//-sku://:1//:箍//: 2392// tax: 251. 42//: 4443. 52//: 遲到是最好的。是@ 338-4338。// "
可以看到()函數(shù)轉(zhuǎn)換的結(jié)果是非常標準的YAML格式。有 --- 在開始和......在結(jié)束。但是你會發(fā)現(xiàn).yml文件中有很多教程或者框架是沒有這些符號的。根據(jù)官方文檔,這些符號是推薦寫的,我們的擴展非常遵循推薦,這就是轉(zhuǎn)換的結(jié)果。很標準。
此外,我們在測試代碼中添加了中文內(nèi)容??梢钥吹皆谥苯愚D(zhuǎn)換時對中文進行了編碼。就像JSON操作一樣,在YAML的擴展功能中,我們也可以指定編碼格式php 代碼長格式化擴展,原樣顯示中文。
(($, ));// (616) "---//: 籃球 // ... // "將 YAML 轉(zhuǎn)換為 PHP 數(shù)組
沒錯,它類似于JSON操作微信公眾號開發(fā)網(wǎng)站開發(fā),將YAML格式的字符串格式內(nèi)容逆向為PHP數(shù)據(jù)內(nèi)容。
(($));// (8) {// [""]=>// int()// ["date"]=>// int()// ["bill-to" ]=>// (3) {// [""]=>// (5) ""http:// [""]=>// (6) ""http:// ………………
還有一個很簡單的()函數(shù)。除了直接操作字符串之外php 代碼長格式化擴展,我們還可以直接提取文件內(nèi)容進行轉(zhuǎn)換,包括上面的()函數(shù),也將結(jié)果直接寫入文件。
(('.yml'));// (3) {// ["php"]=>// (3) {// [""]=>// (7) ""http:// [""]=>// (1) {// (10) ""http:// [""]=>// (1) {// / ["not-name"]=>// (2) {// (9) ".php"http:// (10) ".php"http:// }// [ "js"]=>// (1) {// [""]=>// (1) {// ["not-name"]=>// (1)@ > {// (14) ".mix.js"http:// }// ["css"]=>// bool(true)
我們測試的文件是它附帶的 .yml 文件。該框架不需要我們安裝這個 YAML 擴展。看來框架本身就有工具可以解決讀取和轉(zhuǎn)換YAML格式的問題,這個我們最后再說。與()類似,()直接將PHP數(shù)據(jù)轉(zhuǎn)成YAML格式,直接寫入文件。你可以自己測試一下。
回調(diào)函數(shù)處理標簽
() 和 () 都支持回調(diào)參數(shù)操作。我們先來看一個例子。
// php://:! // :// ……………… ($){ ('','new', $);$ = 0;(('.yml', 0, $, [ '!'=>''] ));// (3) {// ["php"]=>// (3) {// [""]=>// (2 0) "new " // [""]=>// (1) {// ……………………
這是什么意思?!這種寫法可以看作是YAML中的一種標簽格式。這個回調(diào)的作用就是遇到這種類型的類似標簽時,使用什么回調(diào)函數(shù)來處理。例如,在我們的原始文檔中!以下內(nèi)容為。在回調(diào)函數(shù)中,我們將內(nèi)容替換為new,所以最終的輸出是字段的內(nèi)容變成了新的。當然,更詳細的內(nèi)容和更多的語法還是需要我們對YAML格式的語法有更清晰的理解,這里就不多說了,畢竟接觸的不多。
總結(jié)
這個擴展的內(nèi)容不多,就算是需要在實際業(yè)務環(huán)境中操作的YAML格式的配置文件,估計我也不會用。為什么?當然是因為已經(jīng)有很多處理YAML的組件供我們使用了。無需通過擴展編譯安裝的方式改變服務器上的PHP環(huán)境。自己用的話,可以在里面找到很多組件,如果用的話,底層其實就是框架中的yaml處理組件。您可以直接使用 /yaml 將此組件添加到您自己的小項目中。具體內(nèi)容可以參考這個文檔:
測試代碼:
學習PHP中YAML操作擴展的使用。
參考文件:
(x86-64)