整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PHP 過濾器 - 用于數據過濾和驗證的強大工具


          HP 過濾器 - 用于數據過濾和驗證的強大工具

          示例代碼demo:

          ```php
          <?php
          // 定義一個數組,用于存儲用戶輸入的數據
          $userData = array(
          'name' => '<script>alert("XSS attack!");</script>',
          'email' => 'test@example.com',
          'age' => '25'
          );
          // 使用過濾器對用戶輸入的數據進行過濾和驗證
          $filteredData = array(
          'name' => filter_var($userData['name'], FILTER_SANITIZE_STRING),
          'email' => filter_var($userData['email'], FILTER_VALIDATE_EMAIL),
          'age' => filter_var($userData['age'], FILTER_VALIDATE_INT)
          );
          // 輸出過濾后的數據
          echo "過濾后的數據:<br>";
          echo "姓名:" . $filteredData['name'] . "<br>";
          echo "郵箱:" . $filteredData['email'] . "<br>";
          echo "年齡:" . $filteredData['age'] . "<br>";
          ?>
          ```

          使用心得:

          PHP 過濾器是一個非常方便和強大的工具,可以幫助我們對用戶輸入的數據進行過濾和驗證,確保數據的安全性和有效性。在開發過程中,我發現過濾器的使用非常簡單,只需要使用`filter_var()`函數,并指定相應的過濾器類型即可。過濾器類型包括`FILTER_SANITIZE_STRING`用于過濾字符串,`FILTER_VALIDATE_EMAIL`用于驗證郵箱,`FILTER_VALIDATE_INT`用于驗證整數等等。

          通過使用過濾器,我可以輕松地過濾用戶輸入的數據,防止XSS攻擊和其他安全漏洞。同時,過濾器還可以驗證輸入的數據是否符合特定的格式要求,例如郵箱地址必須包含@符號,年齡必須是整數等等。這樣可以確保我們得到的數據是合法和有效的,減少了后續處理數據的麻煩和錯誤。

          在開發過程中遇到的問題和解決的bug:

          1. 問題:用戶輸入的姓名中包含了惡意的腳本代碼,導致頁面出現了XSS攻擊。

          解決:使用`FILTER_SANITIZE_STRING`過濾器對用戶輸入的姓名進行過濾,去除其中的HTML和腳本代碼。

          2. 問題:用戶輸入的郵箱地址格式不正確,無法通過后續的郵件發送驗證。

          解決:使用`FILTER_VALIDATE_EMAIL`過濾器對用戶輸入的郵箱地址進行驗證,確保其符合郵箱地址的格式要求。

          3. 問題:用戶輸入的年齡不是整數,無法進行后續的計算和比較。

          解決:使用`FILTER_VALIDATE_INT`過濾器對用戶輸入的年齡進行驗證,確保其是一個整數。

          總結:

          PHP 過濾器是一個非常實用的工具,可以幫助我們過濾和驗證用戶輸入的數據。通過合理使用過濾器,我們可以提高數據的安全性和有效性,避免安全漏洞和錯誤數據的產生。在開發過程中,我們需要根據具體的需求選擇合適的過濾器類型,并注意處理可能出現的問題和bug,以確保代碼的穩定性和安全性。

          (注:以上內容為筆記,非官方文檔)

          i,你好呀,我是May。

          今天繼續跟大家分享游戲本地化常見的源文檔,PO文件~

          (其實之前寫過一篇簡單的,這次更新為新內容~)

          在進行游戲和應用程序本地化時,我們最常見的文檔是多語言Excel文檔,詳見

          此外,還有一種常見的語言包文檔,就是PO文件。

          比如我在電腦一搜,就找到很多語言包的PO文檔,如剪映云的PO文件。

          所以今天分享:如何翻譯多語言的PO文檔


          1. 認識應用程序本地化中的PO文本

          PO是portable object (可跨平臺對象)的縮寫,可以被Java程序、GNU gettext或其他軟件程序作為屬性文件引用,是應用程序本地化時常見的文檔。

          我的觀點還是:我們本地化人員不是程序員,不需要會寫,只要認識就行!

          我們來以一個demo文檔認識一下,什么是PO文檔:

          這里的例子我就用我下載好的剪映云自帶的PO文檔做案例了,如有侵權,聯系修改~

          1.1 PO文件的數據結構

          PO文件的數據結構長這樣。其中:

          • # 井號后面一般是注釋;

          • msgid ""——msgid空格引號,引號內是原文;

          • msgstr ""——msgstr空格引號,引號內是原文翻譯結束后的譯文的內容

          1.2 PO中的占位符

          根據編程語言不同,原文可能會含有HTML樣式或其它占位符翻譯時必須保留這些字符串

          1.3 句段的注釋

          既然是注釋,也注釋的類型怎么區分呢?在PO中,具體的注釋類型由緊隨井號的字符決定,比如:

          • #—— 井號后面緊跟空格,是譯員的注釋;

          • #.——井號后面緊跟緊跟句點,是額外注釋,一般是從源代碼注釋生成;

          • #:—— 井號后面緊跟冒號,表明待翻譯語句的出處,一般標記源代碼文件及行數;

          • #,—— 井號后面緊跟逗號,一般是由編譯器生成的格式注釋。

          1.4 上下文的場景

          有時,同一個句子在不同的場景里要翻譯成不同的意思。所以為了區分上下文的場景,在PO文件中也會通過 msgctxt 字段,來明確句子在程序中的具體位置和含義。

          1.5 單復數區分

          對于有單復數的語言而言,PO支持設置單復數區分

          CCJK(簡中繁中日韓)是沒有單復數的,就不行~

          那,這樣的文件如何翻譯呢?


          2. memoQ如何幫助處理PO文檔

          memoQ支持直接導入PO文件

          對于含有占位符或HTML樣式的文檔,還可以借助層疊過濾器實現。

          層疊層疊嘛,第一層是PO gettext(也就是PO)過濾器,第二層是HTML過濾器,也可以再加一層正則表達式標注器

          2.1 PO gettext(也就是PO)過濾器,幫助解析不同列。

          直接將文件導入至項目即可。

          2.2 添加正則標注器,幫助處理字符串和非譯元素

          如果原文中有想<color=yellow>{PropName}或者 \n 這樣的字符串和非譯元素,需要再加一層正則表達式標注器,并設置正則定義方式。

          ——這樣的話原文中的非譯元素可以固定為標簽,譯員就不會誤翻譯。

          Step 1:在導入項目時,使用“選擇性導入”;

          Step 2:選擇好原文后,默認用的過濾器是PO gettext過濾器。因為原文有字符串,這里選擇“更改過濾器和配置”;

          Step 3:添加一層正則表達式標注器,并設置正則定義方式;

          Step 4:設置完成過濾器,保存層疊過濾器,以供下次使用。然后,點擊“確定”即可。

          關于正則表達式如何寫

          我寫過一篇應用程序本地化中常用字符串和正則表達式推薦,你可以來學習正則。

          當然,memoQ自帶了一個tags and entities的標注器,內嵌了像 <color>這樣的標簽,也設置了哪些是開標簽哪些是關閉標簽,你也可以直接使用,還是不錯的。

          3. 在memoQ中進行翻譯

          導入完成文檔后,即可在memoQ中進行翻譯了。

          在翻譯過程中,你會發現:

          • msgid中的原文就提取出來了,可以安心做翻譯;

          • 下方還可以預覽原文和譯文

          4. 導出譯文

          翻譯結束后,導出就OK啦

          導出譯文的操作可以參考

          這里用了機器翻譯的結果。

          好啦,希望你上內容可以幫到你,有用可收藏~


          特別說明:本文僅用于學術交流,如有侵權請后臺聯系小編刪除。

          - END -

          轉載來源:職業譯員玩轉翻譯技術

          轉載編輯:李倩楠

          條件渲染

          1、v-if、v-else-if與v-else,寫法:v-if="表達式" ,不展示的DOM元素進行了移除,要求結構不能被“打斷”,適用于切換頻率較低的場景。

          2、v-show,寫法:v-show="表達式",不展示的DOM元素沒有移除使用了樣式進行隱藏,適用于切換頻率較高的場景。

          列表渲染

          1、v-for,寫法:v-for="(item, index) in XXX" :key="YYY",可遍歷:數組、對象、字符串、指定次數;

          2、遍歷數組:v-for / index;遍歷對象:v-for / key。

          3、key的作用,key是虛擬DOM對象的標識,當數據發生變化時,會根據新數據生成新的虛擬DOM,新虛擬DOM與舊虛擬DOM差異比較,而后渲染到頁面。

          4、DIFF算法,DIFF是廣泛的概念,如git的diff,js對象diff等,兩棵樹做diff,即虛擬DOM中的diff算法。

          5、diff算法的必要性:渲染真實DOM的開銷是很大的,輕微的操作都可能導致頁面重新排版,非常耗性能,相對于DOM對象,js對象處理起來更快,而且更簡單,通過diff算法對比新舊vdom之間的差異,可以批量的、最小化的執行dom操作,從而提高性能。

          操作表單數據

          過濾器


          主站蜘蛛池模板: 亚洲熟女少妇一区二区| 亚洲乱码av中文一区二区| 一区二区视频在线| 精品无码国产一区二区三区51安 | 精品国产a∨无码一区二区三区| 国产天堂在线一区二区三区| 日韩av无码一区二区三区| 国产一区二区精品尤物| 日韩精品人妻av一区二区三区| 一本大道在线无码一区| 精品黑人一区二区三区| 99久久综合狠狠综合久久一区| 伊人久久精品无码av一区| 国产精品 一区 在线| 无码毛片一区二区三区中文字幕 | 久久精品国产免费一区| 一区二区三区免费视频播放器| 国产精品第一区揄拍无码| 韩国精品一区二区三区无码视频 | 国产高清一区二区三区四区| 精品无码成人片一区二区| 国产婷婷色一区二区三区深爱网| 日本精品一区二区三本中文| 国产一区视频在线免费观看| 国产一区二区三区视频在线观看| 国产一区中文字幕| 人妻内射一区二区在线视频| 精品乱子伦一区二区三区高清免费播放| 天堂不卡一区二区视频在线观看| 日韩精品电影一区| 亚洲日本一区二区一本一道| 国产一区二区四区在线观看| 国产精品高清一区二区三区| ...91久久精品一区二区三区| 亚洲国产情侣一区二区三区| 四虎成人精品一区二区免费网站 | 久久国产免费一区| 日本在线视频一区二区| 无码一区二区三区在线| 亚洲国产一区二区视频网站| 红桃AV一区二区三区在线无码AV|