php 查询字符串并替换

发布网友 发布时间:2022-04-28 06:34

我来回答

4个回答

懂视网 时间:2022-04-28 10:55

php查找替换字符串的实现方法:1、使用“substr_replace()”函数把字符串的一部分替换为另一个字符串;2、通过“str_replace()”函数用一个字符串替换字符串中的另一些字符。

推荐:《PHP视频教程》

PHP 字符串替换

用于从字符串中替换指定字符串。

相关函数如下:

substr_replace():把字符串的一部分替换为另一个字符串

str_replace():使用一个字符串替换字符串中的另一些字符

substr_replace()

substr_replace() 函数用于把字符串的一部分替换为另一个字符串,返回混合类型。

语法:

mix substr_replace ( mixed string, string replacement, int start [, int length] )

参数说明如下:

参数 说明

string 要处理的字符串

replacement 要插入的字符串

start 字符串开始位置,起始位置为 0 ,为负则从字符串结尾的指定位置开始

length 可选,字符串返回的长度,默认是直到字符串的结尾,为负则从字符串末端返回

例子:

<?php
echo substr_replace('abcdef', '###', 1);//输出 a###
echo substr_replace('abcdef', '###', 1, 2);//输出 a###def
echo substr_replace('abcdef', '###', -3, 2);//输出 abc###f
echo substr_replace('abcdef', '###', 1, -2);//输出 a###ef 
?>

提示

如果 start 是负数且 length 小于等于 start ,则 length 为 0。

str_replace()

str_replace() 函数使用一个字符串替换字符串中的另一些字符,返回混合类型。

语法:

mixed str_replace( mixed search, mixed replace, mixed string [, int &count] )

参数说明如下:

参数 说明

search 要查找(被替换)的字符串

replace 要替换 search 的字符串

string 要处理的字符串

count 可选,一个对替换计数的变量

例子:

<?php
echo str_replace("world","earth","Hello world!");//输出 Hello earth!
//替换多个,且第二个参数为空字符
echo str_replace("o","","Hello world!");//输出 Hell wrld! 
//使用数组
$arr = array("e", "o");
$arr2 = array("x", "y");
echo str_replace($arr, $arr2, "Hello World of PHP", $i);//输出 Hxlly Wyrld yf PHP 
echo $i;//输出4 
?>

提示

该函数与 substr_replace() 不同之处是满足条件的都进行替换

该函数对大小写敏感。如需进行大小写不敏感的查找替换,请使用 str_ireplace()

热心网友 时间:2022-04-28 08:03

$in_array=array('111','222','333');
$out_array=array('aaa','bbb','ccc');
$search='111';
$index=array_search($search,$in_array);
if($index!==false){
echo $out_array[$index];
}

热心网友 时间:2022-04-28 09:21

$in_array=array('111','222','333');
$out_array=array('aaa','bbb','ccc');

$index=2;
$out=$out_array[$index];

前两行的初始化数据数组也可以用循环语句添加或从数据库得到。追问谢谢,不过我传入的值不是顺序值,而是字符串中的某个值。
$index=2; 得到结果,不应该是这样,而是传入 $index="222"; 结果为 $out="bbb";

追答关于$index,你说得对。
传入字符串中的某个值,能否具体点?

热心网友 时间:2022-04-28 10:56

简单不过需要封装成函数,代码如下:

function str_change($number) {
    // 创建一个数组用来存储数字
    $numList = range(1, 26); // 因为26个英文字母
    // 创建一个数组用来存储英文字母
    $engList = range('a', 'z'); // 两个数组下标一致
    // 循环遍历数字数组
    foreach ($numList as $key => $num) {
        // 获取新数字数组 诸如:array(111, 222, ... 252525, 262626)
        $array1 = $num . $num . $num;
        // 获取新英文字母数组 诸如:array('aaa', 'bbb', ... 'yyy', 'zzz')
        $array2 = $engList[$key] . $engList[$key] . $engList[$key];
    }
    // 容错处理
    if (!in_array($number, $array1)) exit('数字参数不合法!');
    // 循环遍历新数字数组
    foreach ($array1 as $key => $num) {
        // 检测与参数是否一致
        if ($number == $num) $str = $array2[$key]; // 获取相应的英文字母,这里的巧妙之处在于两个数组下标一致
    }
    // 最终返回诸如:aaa,bbb,ccc的英文字母
    return $str;
}

如果有什么不明白的地方或者其他疑问,随时可以追问~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com