PHP字符串查找替换高级技巧
字符串查找和替换是日常开发中用到最多的操作。PHP提供了丰富的字符串函数。今天说说各种查找替换技巧。
基本查找用strpos和strrpos。
```php
$text = "Hello World, Hello PHP";
$pos = strpos($text, "World");
echo "World在位置: $pos\n";
$lastPos = strrpos($text, "Hello");
echo "最后一个Hello在位置: $lastPos\n";
if (str_contains($text, "PHP")) {
echo "包含PHP\n";
}
if (str_starts_with($text, "Hello")) {
echo "以Hello开头\n";
}
if (str_ends_with($text, "PHP")) {
echo "以PHP结尾\n";
}
?>
基本替换用str_replace和substr_replace。
```php
$text = "Hello World";
echo str_replace("World", "PHP", $text) . "\n";
$count = 0;
$result = str_replace(["Hello", "World"], ["Hi", "PHP"], $text, $count);
echo "$result (替换了{$count}处)\n";
echo substr_replace($text, "Hi", 0, 5) . "\n";
echo substr_replace($text, "!!!", -1) . "\n";
?>
批量替换用strtr效率高。
```php
$trans = ['Hello' => 'Hi', 'World' => 'PHP', '!' => '。'];
echo strtr("Hello World!", $trans) . "\n";
?>
模板替换用sprintf。
```php
$name = '张三';
$age = 28;
$email = 'zhangsan@test.com';
echo sprintf("姓名: %s, 年龄: %d, 邮箱: %s\n", $name, $age, $email);
echo sprintf("补齐: %'08d\n", 123);
echo sprintf("百分比: %d%%\n", 85);
?>
解析字符串用sscanf。
```php
$logLine = "2024-01-15 14:30:00 [ERROR] 错误信息";
$parts = sscanf($logLine, "%s %s [%[^]]] %[^\n]");
print_r($parts);
?>
多字节字符串函数处理中文。
```php
$text = "你好世界PHP";
echo mb_strpos($text, "世界") . "\n";
echo mb_substr($text, 0, 2, 'UTF-8') . "\n";
echo mb_strtolower("PHP编程") . "\n";
?>
php的字符串函数有两百多个,常用的就三四十个。strpos、str_replace、substr、strtr、str_split、explode、implode这些是最常用的。字符串操作虽然简单,但写对了能省很多时间。
PHP字符串查找替换高级技巧
张小明
前端开发工程师
如何完整备份你的QQ空间历史说说:GetQzonehistory使用指南
如何完整备份你的QQ空间历史说说:GetQzonehistory使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经想要找回多年前在QQ空间发布的那些说说,却发…
python web框架django Django这Python框架,新手一学就上瘾,开发快得像开了挂
入门指南:了解编程的web框架这种编程语言是近年来才渐渐得以变得流行了起来的, 它特别适宜于以快速的方式去开发Web应用程序。它是该种编程语言所拥有的Web框架当中的一个, 它能够给出一种既以快速为特点进而具备可重用性又拥有可扩展性的用于建构Web应用程序的方式…
干电池升压芯片在脉冲负载下的瞬态响应恢复时间
两节干电池升压3.3V芯片方案分享:PW5100与PW5103选型指南在遥控器、血压计、无线鼠标键盘、门磁报警器等干电池供电的设备中,如何将1~3V的电池电压稳定升压到3.3V给MCU和传感器供电,是一个基础但关键的设计问题。今天分享平芯微的两颗明星干电…
明日方舟自动化助手MAA:从零开始掌握高效游戏管理
明日方舟自动化助手MAA:从零开始掌握高效游戏管理 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode…
5步掌握OpenRocket:免费火箭设计软件终极指南
5步掌握OpenRocket:免费火箭设计软件终极指南 【免费下载链接】openrocket Model-rocketry aerodynamics and trajectory simulation software 项目地址: https://gitcode.com/GitHub_Trending/op/openrocket OpenRocket是一款功能强大的免费开源火箭设计与仿…
ZLUDA终极指南:如何在非NVIDIA显卡上运行CUDA应用
ZLUDA终极指南:如何在非NVIDIA显卡上运行CUDA应用 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 想要在Intel或AMD显卡上运行CUDA应用程序吗?ZLUDA项目为你提供了完美的解决方案&…