喔唷网 - 网络从业者技术信息综合门户!

当前位置: 主页 > 教程技术 > 编程语言 > php

PHP的字符串:PHP中的百变星君 2.3

时间 : 2025-04-27 11:57来源 : 喔唷网作者 : 喔唷教程点击 :
欢迎来到PHP字符串变装秀!在这里,字符串就像百变星君,能随意变换造型,玩转各种花样。准备好你的魔法棒(键盘),让我们开始字符串的奇幻之旅吧! 2.3.1 字符串的诞生:四种创世法则 1. 单引

欢迎来到PHP字符串变装秀!在这里,字符串就像百变星君,能随意变换造型,玩转各种花样。准备好你的魔法棒(键盘),让我们开始字符串的奇幻之旅吧!

2.3.1 字符串的诞生:四种创世法则

1. 单引号派 - 保守派代表

$simpleString = '我是普通的字符串';
$varWillNotWork = '变量$simpleString不会被解析';

单引号字符串就像固执的老教授:

  • 不解析变量
  • 只认识两个转义字符:\'和\\
  • 性能稍好(因为不用检查变量)

2. 双引号派 - 自由派代表

$name = "PHP";
$dynamicString = "Hello $name! 2+2=${2+2}";

双引号字符串像热情的社交达人:

  • 解析变量(用花括号{}可以更清晰)
  • 支持所有转义字符:\n换行、\t制表符等
  • 可以玩变量变量:"${$var}"

3. Heredoc - 文艺青年

$longText = <<<"EOD"
这里可以写多行内容,
变量$name会被解析,
直到遇到结束标识符EOD(必须单独一行,不能缩进!)
EOD;

Heredoc就像双引号的加长版豪华车,适合写大段文本。

4. Nowdoc - 佛系青年

$staticText = <<<'EOT'
这里也是多行,
但变量$name不会被解析,
就像单引号字符串的加强版
EOT;

Nowdoc是单引号的远房表亲,适合写不需要解析的大段文本。

2.3.2 字符串操作:七十二变

1. 连接运算符:字符串的红娘

$greeting = "Hello" . " " . "World!"; // 点号连接
$name = "Alice";
$welcome = "Welcome, " . $name . "!"; // 连接变量

2. 常用字符串函数

长度检测:strlen()

$length = strlen("PHP"); // 3
$zhLength = strlen("中文"); // 6(一个中文UTF-8占3字节)

注意:对于中文等多字节字符,要用mb_strlen()

查找子串:strpos()

$position = strpos("I love PHP", "PHP"); // 7
if ($position !== false) {
    echo "找到了!";
}

截取子串:substr()

$part = substr("Hello World", 6, 5); // "World"
$zhPart = mb_substr("你好世界", 2, 2); // "世界"(多字节安全)

替换:str_replace()

$newString = str_replace("apple", "orange", "I have an apple");
// "I have an orange"

大小写转换

$lower = strtolower("PHP IS FUN"); // "php is fun"
$upper = strtoupper("php is fun"); // "PHP IS FUN"
$title = ucwords("php is fun"); // "Php Is Fun"

去除空白:trim()

$clean = trim("  too much space  "); // "too much space"

2.3.3 字符串与数组的跨界演出

字符串→数组:explode()

$fruits = "apple,banana,orange";
$fruitArray = explode(",", $fruits); // ["apple","banana","orange"]

数组→字符串:implode()

$fruitString = implode(" and ", $fruitArray); 
// "apple and banana and orange"

2.3.4 格式化字符串:printf家族

printf("There are %d monkeys in the %s", 5, "tree");
// 输出:There are 5 monkeys in the tree

$formatted = sprintf("Price: $%.2f", 19.99);
// "Price: $19.99"

常用占位符:

  • %s 字符串
  • %d 十进制整数
  • %f 浮点数
  • %x 十六进制数

2.3.5 多字节字符串:中文等特殊字符处理

// 需要先开启mbstring扩展
mb_internal_encoding("UTF-8"); // 设置内部编码

$chinese = "你好世界";
echo mb_strlen($chinese); // 4(正确计算中文字符)
echo mb_substr($chinese, 2, 2); // "世界"

2.3.6 练习:字符串魔术秀

$magic = "Abracadabra";
echo strlen($magic) . "\n"; // 输出?
echo strpos($magic, "cad") . "\n"; // 输出?
echo substr_replace($magic, "hocus", 4, 3) . "\n"; // 输出?
echo strtoupper(strrev($magic)) . "\n"; // 输出?

答案:

  1. 11(字符串长度)
  2. 4("cad"开始位置)
  3. "Abrahocusabra"(替换第4个字符开始的3个字符)
  4. "ARBADACARBA"(反转后转大写)

2.3.7 字符串安全小贴士

  1. 防注入:处理用户输入时要用htmlspecialchars()  $safeOutput = htmlspecialchars($userInput);
  2. SQL安全:使用预处理语句或 mysqli_real_escape_string()
  3. 正则安全:用preg_quote()处理正则表达式中的特殊字符

记住:PHP中的字符串就像百变星君,掌握它的变化规律,你就能在代码世界里施展各种魔法!下一节我们将探索数组——PHP中的万能收纳箱。

栏目列表

关联类容

热点推荐

栏目推荐

猜你喜欢