PHP字符处理函数的问题总结_PHP教程
我们在学习PHP字符处理函数1. in_array()函数
Java代码
- $zero = "0";
- $za = array("00");
- if(in_array($zero, $za, true)){
- echo 'in';
- }else{
- echo 'not in';
- }
- $zero = "0";
- $za = array("00");
- if(in_array($zero, $za, true)){
- echo 'in';
- }else{
- echo 'not in';
- }
这段代码应该输出什么?答案是in,而不是not in。
然后测试一下这个:
Java代码
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute">zero</span><span> = </span><span class="attribute-value">"0"</span><span>; </span></span></li> <li> <span>$</span><span class="attribute">za</span><span> = </span><span class="attribute-value">array</span><span>("00"); </span> </li> <li class="alt"><span>if("0" == "00"){ </span></li> <li> <span>echo '</span><span class="attribute">0</span><span> == 00'; </span> </li> <li class="alt"><span>} </span></li> <li> <span>$</span><span class="attribute">zero</span><span> = </span><span class="attribute-value">"0"</span><span>; </span> </li> <li class="alt"> <span>$</span><span class="attribute">za</span><span> = </span><span class="attribute-value">array</span><span>("00"); </span> </li> <li><span>if("0" == "00"){ </span></li> <li class="alt"> <span>echo '</span><span class="attribute">0</span><span> == 00'; </span> </li> <li><span>} </span></li> </ol>
返回'0'=='00'。
所以以后要注意:对于字符串不是说in,就表示那个字符在array里面。
PHP字符处理函数2. strtolower()函数
我的解决方式是:
Java代码
<ol class="dp-xml"> <li class="alt"> <span><span>urldecode(strtolower<br></span></span><span><span>(urlendoce($str))</span></span><span><span>); </span></span> </li> <li><span>urldecode(strtolower<br>(urlendoce($str))); </span></li> </ol>
PHP字符处理函数3. trim()
如果面对的是英文字符,那么trim()应该就满足了,但是对于中文字符,就应该重写以trim掉全角的空格:
Java代码
<ol class="dp-xml"> <li class="alt"><span><span>function cntrim($value){ </span></span></li> <li><span>return trim(ereg_replace("^(<br> )*|( )*$","", $value)); </span></li> <li class="alt"><span>} </span></li> <li><span> </span></li> <li class="alt"><span>function cntrim($value){ </span></li> <li><span>return trim(ereg_replace("^( <br>)*|( )*$","", $value)); </span></li> <li class="alt"><span>} </span></li> </ol>
PHP字符处理函数4. empty():
这个就有点像上面那个in_array()了,如果你要判断一个textarea里面是否有值,不能光使用empty,因为'0'字符串也会返回empty(但奇怪的是'00'就不会返回empty),重写以应对这种情况:
Java代码
<ol class="dp-xml"> <li class="alt"><span><span>function non_szero_empty<br>($value){ </span></span></li> <li><span>return empty($value) && <br>$value != '0'; </span></li> <li class="alt"><span>} </span></li> <li><span> </span></li> <li class="alt"><span>function non_szero_empty<br>($value){ </span></li> <li><span>return empty($value) &&<br> $value != '0'; </span></li> <li class="alt"><span>} </span></li> </ol>
PHP字符处理函数5. htmlentities():
与strtolower()类似,htmlentities也会出现一些转义gbk字符的问题,以致出现乱码。索性这样替换:
Java代码
<ol class="dp-xml"> <li class="alt"><span><span>function _myhtmlentities($value){ </span></span></li> <li> <span>//$</span><span class="attribute">value</span><span> = </span><span class="attribute-value">preg_replace</span><span>('/&<br>((#(d{3,5}|x[a-fA-F0-9]{4})|<br>[a-zA-Z][a-z0-9]{2,5});)/', '&\1'<br>, str_replace(array('&', '"', '</span><span class="tag"><span> ', '</span><span class="tag">></span><span>')<br>, array('&', '"', '</span><span class="tag"><</span><span>', <br />'</span><span class="tag">></span><span>'), $value)); </span></span> </li> <li class="alt"> <span>$</span><span class="attribute">value</span><span> = </span><span class="attribute-value">str_replace</span><span>(array('&', '"', <br>'</span><span class="tag"><span> ', '</span><span class="tag">></span><span>'), array('&', '"', <br>'</span><span class="tag"><</span><span>', '</span><span class="tag">></span><span>'), $value); </span></span> </li> <li><span>return $value; </span></li> <li class="alt"><span>} </span></li> <li><span>function _myhtmlentities($value){ </span></li> <li class="alt"> <span>//$</span><span class="attribute">value</span><span> = </span><span class="attribute-value">preg_replace</span><span>('/&((#(<br>d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-<br>z0-9]{2,5});)/', '&\1', str_replace<br>(array('&', '"', '</span><span class="tag"><span> ', '</span><span class="tag">></span><span>'), array(<br>'&', '"', '</span><span class="tag"><</span><span>', '</span><span class="tag">></span><span>'), $value)); </span></span> </li> <li> <span>$</span><span class="attribute">value</span><span> = </span><span class="attribute-value">str_replace</span><span>(array('&', '"', <br>'</span><span class="tag"><span> ', '</span><span class="tag">></span><span>'), array('&', '"', <br>'</span><span class="tag"><</span><span>', '</span><span class="tag">></span><span>'), $value); </span></span> </li> <li class="alt"><span>return $value; </span></li> <li><span>} </span></li> </ol>
不过现在还在疑惑为什么htmlentities会出现乱码,这样改为什么又可行。计划有时间看源代码一探究竟。
以上就是我们这次要向大家介绍的PHP字符处理函数的全部内容。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

AI可以幫助優化Composer的使用,具體方法包括:1.依賴管理優化:AI分析依賴關係,建議最佳版本組合,減少衝突。 2.自動化代碼生成:AI生成符合最佳實踐的composer.json文件。 3.代碼質量提升:AI檢測潛在問題,提供優化建議,提高代碼質量。這些方法通過機器學習和自然語言處理技術實現,幫助開發者提高效率和代碼質量。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

MySQL函數可用於數據處理和計算。 1.基本用法包括字符串處理、日期計算和數學運算。 2.高級用法涉及結合多個函數實現複雜操作。 3.性能優化需避免在WHERE子句中使用函數,並使用GROUPBY和臨時表。

Composer是PHP的依賴管理工具,通過composer.json文件管理項目依賴。 1)解析composer.json獲取依賴信息;2)解析依賴關係形成依賴樹;3)從Packagist下載並安裝依賴到vendor目錄;4)生成composer.lock文件鎖定依賴版本,確保團隊一致性和項目可維護性。

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

會話通過服務器端的狀態管理機制實現用戶認證。 1)會話創建並生成唯一ID,2)ID通過cookies傳遞,3)服務器存儲並通過ID訪問會話數據,4)實現用戶認證和狀態管理,提升應用安全性和用戶體驗。
