## 字符串介紹
PHP開發中,我們遇到最多的可能就是字符串。
字符串變量用于包含字符串的值。
一個字符串 通過下面的3種方法來定義:
1、單引號
2、雙引號
3、heredoc語法結構
基本用法如下,后面的節還會詳細進行介紹使用技巧,這里只介紹用法:
單引號定義的字符串:$hello = 'hello world';
雙引號定義的字符串:$hello = "hello world";
heredoc語法結構定義的字符串:
~~~
$hello = <<<TAG
hello world
TAG;
~~~
## 單引號和雙引號的區別
在PHP中,字符串的定義可以使用英文單引號' ',也可以使用英文雙引號" "。
但是必須使用同一種單或雙引號來定義字符串,如:'Hello World"和"Hello World'為非法的字符串定義。
單引號和雙引號到底有啥區別呢?
PHP允許我們在雙引號串中直接包含字串變量。
而單引號串中的內容總被認為是普通字符。
比如:
~~~
$str='hello';
echo "str is $str"; //運行結果: str is hello
echo 'str is $str'; //運行結果: str is $str
~~~
## 去除字符串首尾的空格
PHP中有三個函數可以去掉字符串的空格
trim去除一個字符串兩端空格。
rtrim是去除一個字符串右部空格,其中的r是right的縮寫。
ltrim是去除一個字符串左部空格,其中的l是left的縮寫。
例子如下:
~~~
echo trim(" 空格 ")."<br>";
echo rtrim(" 空格 ")."<br>";
echo ltrim(" 空格 ")."<br>";
~~~
## 獲取字符串的長度
php中有一個神奇的函數,可以直接獲取字符串的長度,這個函數就是strlen()。
例子如下:
~~~
$str = 'hello';
$len = strlen($str);
echo $len;//輸出結果是5
~~~
strlen函數對于計算英文字符是非常的擅長,但是如果有中文漢字,要計算長度該怎么辦?
可以使用**mb_strlen()函數獲取字符串中中文長度**。
例子如下:
~~~
$str = "我愛你";
echo mb_strlen($str,"UTF8");//結果:3,此處的UTF8表示中文編碼是UTF8格式,中文一般采用UTF8編碼
~~~
## 字符串的截取
php中有非常多的字符串處理函數,其中就有字符串截取函數。
1、英文字符串的截取函數substr()
函數說明:substr(字符串變量,開始截取的位置,截取個數)
例如:
~~~
$str='i love you';
//截取love這幾個字母
echo substr($str, 2, 4);//為什么開始位置是2呢,因為substr函數計算字符串位置是從0開始的,也就是0的位置是i,1的位置是空格,l的位置是2。從位置2開始取4個字符,就是love。
~~~
2、中文字符串的截取函數mb_substr()
函數說明:mb_substr(字符串變量,開始截取的位置,截取個數, 網頁編碼)
例如:
~~~
$str='我愛你,中國';
//截取中國兩個字
echo mb_substr($str, 4, 2, 'utf8');//為什么開始位置是4呢,和上一個例子一樣,因為mb_substr函數計算漢字位置是從0開始的,也就是0的位置是我,1的位置是愛,4的位置是中。從位置4開始取2個漢字,就是中國。中文編碼一般是utf8格式
~~~
## 查找字符串
如果有一個字符串`$str = 'I want to study at` imooc';,怎么樣找到其中的imooc在哪個位置呢?
查找字符串,我們需要用到PHP的查找字符串函數strpos();
函數說明:strpos(要處理的字符串, 要定位的字符串, 定位的起始位置[可選])
例子:
~~~
$str = 'I want to study at imooc';
$pos = strpos($str, 'imooc');
echo $pos;//結果顯示19,表示從位置0開始,imooc在第19個位置開始出現
~~~
## 替換字符串
如果有一個字符串$str = 'I want to learn js';,怎么樣將js字符替換成你想學的php字符呢?
替換字符串,我們需要用到PHP的替換函數str_replace()
函數說明:str_replace(要查找的字符串, 要替換的字符串, 被搜索的字符串, 替換進行計數[可選])
例子:
~~~
$str = 'I want to learn js';
$replace = str_replace('js', 'php', $str);
echo $replace;//結果顯示I want to learn php
~~~
## 格式化字符串
如果有一個字符串$str = '99.9';,怎么樣使這個字符串變成99.90呢?
我們需要用到PHP的格式化字符串函數sprintf()
函數說明:sprintf(格式, 要轉化的字符串)
返回:格式化好的字符串
例子:
~~~
$str = '99.9';
$result = sprintf('%01.2f', $str);
echo $result;//結果顯示99.90
~~~
解釋下,上面例子中的格式
這個 %01.2f 是什么意思呢?
1、這個 % 符號是開始的意思,寫在最前面表示指定格式開始了。 也就是 "起始字符", 直到出現 "轉換字符" 為止,就算格式終止。
2、跟在 % 符號后面的是 0, 是 "填空字元" ,表示如果位置空著就用0來填滿。
3、在 0 后面的是1,這個 1 是規定整個所有的字符串占位要有1位以上(小數點也算一個占位)。
如果把 1 改成 6,則 $result的值將為 099.90
因為,在小數點后面必須是兩位,99.90一共5個占位,現在需要6個占位,所以用0來填滿。
4、在 %01 后面的 .2 (點2) 就很好理解了,它的意思是,小數點后的數字必須占2位。 如果這時候,$str 的值為9.234,則 $result的值將為9.23.
為什么4 不見了呢? 因為在小數點后面,按照上面的規定,必須且僅能占2位。 可是 $str 的值中,小數點后面占了3位,所以,尾數4被去掉了,只剩下 23。
5、最后,以 f "轉換字符" 結尾。
## 字符串的合并與分割
1、php字符串合并函數implode()
函數說明:implode(分隔符[可選], 數組)
返回值:把數組元素組合為一個字符串
例子:
~~~
$arr = array('Hello', 'World!');
$result = implode('', $arr);
print_r($result);//結果顯示Hello World!
~~~
2、php字符串分隔函數explode()
函數說明:explode(分隔符[可選], 字符串)
返回值:函數返回由字符串組成的數組
例子:
~~~
$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//結果顯示array('apple','banana')
~~~
## 字符串的轉義
php字符串轉義函數addslashes()
函數說明:用于對特殊字符加上轉義字符,返回一個字符串
返回值:一個經過轉義后的字符串
例子:
~~~
$str = "what's your name?";
echo addslashes($str);//輸出:what\'s your name?
~~~
- 前端工程師
- HTML
- 使用meta實現頁面的定時刷新或跳轉
- 表單相關
- 表單元素input、按鈕、文字完美垂直居中對齊方法
- CSS
- 相關工具網站
- JS
- jQuery
- 第1章 初始jQuery
- 環境搭建
- jQuery對象與DOM對象
- jQuery對象轉化成DOM對象
- DOM對象轉化成jQuery對象
- 第2章 jQuery選擇器
- id選擇器
- 類選擇器
- 元素選擇器
- 全選擇器(*選擇器)
- 層級選擇器
- 基本篩選選擇器
- 內容篩選選擇器
- 可見性篩選選擇器
- 屬性篩選選擇器
- 子元素篩選選擇器
- 表單元素選擇器
- 表單對象屬性篩選選擇器
- 特殊選擇器this
- 第3章 jQuery的屬性與樣式
- 元素的數據存儲
- 問題解決方案
- 解決innerHTML包含的js代碼不能被執行的問題
- webpackdoc
- 前端開發框架
- Bootstrap 3.3.6
- 起步
- 全局 CSS 樣式
- 概覽
- 柵格系統
- PHP
- PHP入門篇
- 基礎總結
- PHP環境變量$_SERVER和系統常量詳細說明
- PHP進階篇
- 數組
- 函數
- 類
- 字符串操作
- 正則表達式
- 會話控制
- 文件系統
- 日期和時間
- 圖形圖像操作
- PHP異常處理
- 數據庫操作
- WEB在線文件管理器
- PHP文件操作
- 獲取首層目錄信息
- 獲取文件信息
- 列表顯示文件及大小
- PHP與MySQL關系大揭秘
- PHP支持哪些數據庫
- 數據庫擴展
- 連接MySQL數據庫
- 執行MySQL查詢
- 插入新數據到MySQL中
- MVC架構模式分析與設計
- Smarty模版語法
- Smarty的基本語法
- Smarty的條件判斷語句
- Smarty的循環語句
- Smarty的文件引用
- Smarty類和對象賦值與使用
- Smarty函數的使用
- functions函數插件的定義和使用
- modifiers變量調節器插件的定義和使用
- block functions區塊函數插件的定義和使用
- Smarty實例
- MVC微型框架的建立
- 網絡摘抄
- PHPExcel如何讀取超大excel文件
- Composer
- Composer技巧
- PHP 開發者該知道的 5 個 Composer 小技巧
- composer常用命令
- Composer使用方法整理(Cy23)
- 利用Composer一步一步搭建自己的PHP框架
- ThinkPHP
- ThinkPHP中RBAC類詳解(一)
- 附:添加注釋版RBAC類源碼
- 常見問題
- 常見方法
- thinkphp 合并兩個字段組合成一個臨時字段concat函數
- ThinkPHP Where 條件中使用表達式
- 編程相關工具
- Eclipse
- Eclipse或Zendstudio漢化
- Zend studio
- Zendstudio快捷鍵
- Zend Studio實用快捷鍵一覽表
- Sublime text
- Sublime text快捷鍵
- 16 個 Sublime Text 快捷鍵
- Emmet的用法及相關語法
- VS Code
- 數據庫
- MySql
- 問題匯總
- mysql創建存儲過程失敗1307錯誤解決
- Mysql出現Field * doesn't have a default value解決辦法
- mysql:ADO連接mysql數據庫,驅動程序和ODBC數據源問題
- 自己如何正確獲取MYSQL的ADO連接字符串
- 網上摘抄
- mysql 存在更新 不存在插入
- Mysql字符串字段中是否包含某個字符串,用 find_in_set
- mysql字段類型對應的數字編號
- 5.7mysql group分組查詢錯誤問題
- mysql常用操作語句
- SQL2005
- SQL常見錯誤
- 使用 sp_change_users_login 修復產生的孤 立賬戶 & 還原中的孤立用戶
- ASP
- Url編碼解碼函數合集 含utf-8和gb2312
- 其他前端相關技巧
- 聯機查看 Office 文檔
- 服務器配置
- windows
- 服務器安裝
- XAMPP自帶TOMCAT插件可以支持php+java
- IIS
- iis7服務器,客戶端無法下載exe文件的解決之道
- Linux
- ubuntu
- Linux安裝JDK
- 輔助開發工具
- Git