IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP 零基础入门笔记(11):字符串 String -> 正文阅读

[PHP知识库]PHP 零基础入门笔记(11):字符串 String

字符串 String

字符串类型

  • 单引号字符串
  • 双引号字符串
  • nowdoc 字符串
  • heredoc 字符串

示例

<?php

// 1、单引号字符串
$str1 = 'hello world';

var_dump($str1);
// string(11) "hello world"

// 2、双引号字符串
$str2 = "hello world";

var_dump($str2);
// string(11) "hello world"

// 3、nowdoc
$str2 = <<<'EOD'
hello world
EOD;

var_dump($str2);
// string(11) "hello world"


// 4、heredoc
$str1 = <<<EOD
hello world
EOD;

var_dump($str1);
// string(11) "hello world"

字符串转义

系统会特殊处理:反斜杠 + 字母

例如:

\r\n 回车换行

PHP 中常用的转义字符

\'  在单引号字符串中显示单引号
\"  在双引号字符串中显示双引号
\r  回车(回到当行的行首)
\n  换行
\t  tab
\$  $在PHP中作为变量符号

单引号和双引号的区别

1、单引号中能够识别\', 而双引号中不能识别\'

<?php


$str1 = 'hello \'world';
$str2 = "hello \'world";

var_dump($str1);
// string(12) "hello 'world"
var_dump($str2);
// string(13) "hello \'world"

2、单引号中不能识别变量,而双引号中能识别$,解析变量

  • 变量本省需要与后面内容有区分,保证变量独立性
  • 使用变量标识符区分,加一组大括号{}
<?php

$a = 'Tom';

$str1 = 'hello $a world';
var_dump($str1);
// string(14) "hello $a world"

$str2 = "hello $a world";
var_dump($str2);
// string(15) "hello Tom world"

$str3 = "hello $aworld";
var_dump($str3);
// PHP Notice:  Undefined variable: aworld

$str4 = "hello {$a}world";
var_dump($str4);
// string(14) "hello Tomworld"

结构化定义字符串变量的规则

  1. 结构化定义字符串对应的边界符有条件
    • 上边界符后面不能有任何内容
    • 下边界符必须最左边顶格
    • 下边界符后面只能跟符号,不能跟任何字符
  2. 结构化定义字符串的内部(边界符之间)的所有内容都是字符串本身
<?php
$str1 = <<<EOD
hello world
EOD;

var_dump($str1);
// string(11) "hello world"

字符串长度

strlen(string $string): int

示例

<?php

$str1 = 'hello world';
$str2 = '你好世界'; // 中文在utf8字符集下占3个字节

var_dump(strlen($str1)); // int(11)
var_dump(strlen($str2)); // int(12)

多字节字符串扩展模块 mbstring(Multi String)

<?php

$str1 = 'hello world';
$str2 = '你好世界';

var_dump(mb_strlen($str1)); // int(11)
var_dump(mb_strlen($str2)); // int(4)

字符串相关函数

1、转换函数

implode — 将一个一维数组的值转化为字符串

implode(string $glue, array $pieces): string
implode(array $pieces): string

print_r(implode('|', ['北京', '上海', '广州']));
// 北京|上海|广州

explode — 使用一个字符串分割另一个字符串

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array


print_r(explode('|', '北京|上海|广州'));
// Array
// (
//     [0] => 北京
//     [1] => 上海
//     [2] => 广州
// )

str_split — 将字符串转换为数组

str_split(string $string, int $split_length = 1): array

// 注意:中文字符拆分有问题
print_r(str_split('helloworld', 5));
// Array
// (
//     [0] => hello
//     [1] => world
// )

2、截取函数

trim — 去除字符串首尾处的空白字符(或者其他字符)

trim(string $str, string $character_mask = " \t\n\r\0\x0B"): string

ltrim — 删除字符串开头的空白字符(或其他字符)

ltrim(string $str, string $character_mask = ?): string

rtrim — 删除字符串末端的空白字符(或者其他字符)

rtrim(string $str, string $character_mask = ?): string

示例

<?php

var_dump(trim(' 你好,世界 '));
// string(15) "你好,世界"

var_dump(ltrim(' 你好,世界 '));
// string(16) "你好,世界 "

var_dump(rtrim(' 你好,世界 '));
// string(16) " 你好,世界"

substr — 返回字符串的子串

substr(string $string, int $offset, ?int $length = null): string

// 注意:中文字符截取有问题
var_dump(substr('Hello World', 6, 5));
// string(5) "World"

strstr — 返回 haystack 字符串从 needle 第一次出现的位置开始到结尾的字符串(取文件后缀名)

strstr(string $haystack, mixed $needle, bool $before_needle = false): string

var_dump(strstr('Hello,World', 'W'));
// string(5) "World"

3、大小写转换

strtolower — 将字符串转化为小写

strtolower(string $string): string

strtoupper — 将字符串转化为大写

strtoupper(string $string): string

ucfirst — 将字符串的首字母转换为大写

ucfirst(string $str): string

示例

var_dump(strtolower('Hello, World'));
// string(12) "hello, world"

var_dump(strtoupper('Hello, World'));
// string(12) "HELLO, WORLD"

var_dump(ucfirst('hello, world'));
// string(12) "Hello, world"

4、查找函数

strpos — 返回 needle 在 haystack 中首次出现的数字位置。

strpos(string $haystack, mixed $needle, int $offset = 0): int

var_dump(strpos('Hello, World', 'o'));
// int(4)

strrpos — 返回字符串 haystack 中 needle 最后一次出现的数字位置。

strrpos(string $haystack, string $needle, int $offset = 0): int

var_dump(strrpos('Hello, World', 'o'));
// int(8)

5、替换函数

str_replace — 子字符串替换, 该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。

str_replace(
    mixed $search,
    mixed $replace,
    mixed $subject,
    int &$count = ?
): mixed

var_dump(str_replace('o', 'A', 'Hello, World'));
// string(12) "HellA, WArld"

6、格式化函数

printf — 输出格式化字符串

printf(string $format, mixed $args = ?, mixed $... = ?): int

sprintf — 返回格式化字符串

sprintf(string $format, mixed ...$values): string

格式化参数:https://www.php.net/manual/zh/function.sprintf.php


// 直接输出,返回数字
$ret1 = printf('my name is %s, and year old is %d', 'Tom', 18);
// my name is Tom, and year old is 18
var_dump($ret1); // int(34)


// 返回字符串
$ret2 = sprintf('my name is %s, and year old is %d', 'Tom', 18);
var_dump($ret2);
// string(34) "my name is Tom, and year old is 18"

7、其他

str_repeat — 重复一个字符串

str_repeat(string $input, int $multiplier): string

echo str_repeat('ABC', 5);
// ABCABCABCABCABC

str_shuffle — 随机打乱一个字符串

str_shuffle(string $str): string

echo str_shuffle('ABCDEFG');
// GBEACDF
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:16:01  更:2022-04-22 18:17:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 15:01:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码