str_replace只替换一次字符串的方法
我们都知道,在PHP里Strtr,strreplace等函数都可以用来替换,不过他们每次替换的时候都是全部替换,举个例子:
"abcabbc",这个字符串如果使用上边的函数来把其中的b替换掉,那么他会全部替换掉,但是如果你想只替换一个或两个怎么办呢?看下边的解决方法:
这是个比较有点意思的问题,正好之前也做过类似的处理,当时我是直接利用preg_replace实现的。
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
在 subject 中搜索 pattern 模式的匹配项并替换为 replacement。如果指定了 limit,则仅替换 limit 个匹配,如果省略 limit 或者其值为 -1,则所有的匹配项都会被替换。
因为preg_replace的第四个参数可以实现替换次数的限制,所以这个问题这样处理很方便。但是在查看php.net上关于str_replace的函数评论后,从中居然也可以挑出几个有代表性的函数来。
str_replace_once
思路首先是找到待替换的关键词的位置,然后利用substr_replace函数直接替换之。
<?php
function str_replace_once($needle, $replace, $haystack) {
// Looks for the first occurence of $needle in $haystack
// and replaces it with $replace.
$pos = strpos($haystack, $needle);
if ($pos === false) {
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
?>
str_replace_limit
还是利用preg_replace,只不过它的参数更象preg_replace了,而且对某些特殊字符做了转义处理,通用性更好。
代码如下:
<?
function str_replace_limit($search, $replace, $subject, $limit=-1) {
// constructing mask(s)...
if (is_array($search)) {
foreach ($search as $k=>$v) {
$search[$k] = '`' . preg_quote($search[$k],'`') . '`';
}
}
else {
$search = '`' . preg_quote($search,'`') . '`';
}
// replacement
return preg_replace($search, $replace, $subject, $limit);
}
?>
相关推荐
-
php str_replace的替换漏洞
定义和用法 str_replace() 函数使用一个字符串替换字符串中的另一些字符. 语法 str_replace(find,replace,string,count) 参数 描述 find 必需.规定要查找的值. replace 必需.规定替换 find 中的值的值. string 必需.规定被搜索的字符串. count 可选.一个变量,对替换数进行计数. 提示和注释 注释:该函数对大小写敏感.请使用 str_ireplace() 执行对大小写不敏感的搜索. 注释:该函数是二进制安全的. 例子
-
PHP的substr_replace将指定两位置之间的字符替换为*号
复制代码 代码如下: $username = "zongzi"; echo substr_replace($username,'**','1','2'); 定义和用法 substr_replace() 函数把字符串的一部分替换为另一个字符串. 语法substr_replace(string,replacement,start,length) 参数 描述 string 必需.规定要检查的字符串. replacement 必需.规定要插入的字符串. start 必需.规定在字符串的何处开始
-
php字符串替换函数substr_replace()用法实例
本文实例讲述了php字符串替换函数substr_replace()用法.分享给大家供大家参考.具体分析如下: substr_replace用于在指定字符串中替换指定位置的子字符串 <?php $string = "Warning: System will shutdown in NN minutes!"; $pos = strpos($string, "NN"); print(substr_replace($string, "15", $p
-
php函数之子字符串替换 str_replace
str_replace - 子字符串替换 [str_replace]mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )php函数str_replace: 返回一个字符串或者数组.该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果. 现在我们所能知道的一些这个函数的用法,如:str_replace("#", &q
-
PHP中利用substr_replace将指定两位置之间的字符替换为*号
复制代码 代码如下: $username = "zongzi"; echo substr_replace($username,'**','1','2');
-
php str_replace替换指定次数的方法详解
PHP str_replace方法,替换字符串 格式如下: mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) search 查找的目标值,也就是 needle.一个数组可以指定多个目标. replace search 的替换值.一个数组可以被用来指定多重替换. subject 执行替换的数组或者字符串.也就是 haystack.如果 subject 是一个数组,替换操作将
-
JSP中的字符替换函数 str_replace() 实现!
//// StrReplace.java//package forum;import java.util.*; /*** Title:* Description:* Copyright: Copyright (c) 2001* Company:* @author* @version 1.0*/ public class StrReplace { public StrReplace() {}public String str_replace(String from,String to,String
-
php使用str_replace实现输入框回车替换br的方法
本文实例讲述了php使用str_replace实现输入框回车替换br的方法,分享给大家供大家参考.具体实现方法如下: 在我们用textarea时会发现回车与空格是不可看到的,所以我们利用str_replace函数将php中的\\n替换成br就可以了,有需要的朋友可以参考一下,代码如下: 复制代码 代码如下: function htmtocode($content) { $content = str_replace("n", "<br>", str
-
php preg_match_all结合str_replace替换内容中所有img
采集回来的图片img标签中,有好多javascript脚本和无用的信息,必需过替换自己想要的,比如alt.先看看要过滤的内容,我随便复制出来: 复制代码 代码如下: sdfsdfsdf<img alt="3568df.com靓图" src="http://www.aaa.com/upimg /080330/120D1232295023X0.gif" src="http://www.eee.com/upimg/080330 /120D123229502
-
str_replace只替换一次字符串的方法
我们都知道,在PHP里Strtr,strreplace等函数都可以用来替换,不过他们每次替换的时候都是全部替换,举个例子:"abcabbc",这个字符串如果使用上边的函数来把其中的b替换掉,那么他会全部替换掉,但是如果你想只替换一个或两个怎么办呢?看下边的解决方法: 这是个比较有点意思的问题,正好之前也做过类似的处理,当时我是直接利用preg_replace实现的. mixed preg_replace ( mixed pattern, mixed replacement, m
-
python字符串替换第一个字符串的方法
Python 截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾. # 例1:字符串截取 str = '12345678' print str[0:1] >> 1 # 输出str位置0开始到位置1以前的字符 print str[1:6] >> 23456 # 输出str位置1开始到位置6以前的字符 num = 18 str = '0000' + str(num) # 合并字符串 print str[-
-
C++中string替换所有指定字符串的方法
C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事. 首先明白一个概念,即string替换所有字符串,将"12212″这个字符串的所有"12″都替换成"21″,结果是什么? 可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下: # include # include using namespace st
-
php字符串的替换,分割和连接方法
本文实例讲述了php字符串的替换,分割和连接方法.分享给大家供大家参考,具体如下: 字符串的替换 1. 执行一个正则表达式的搜索和替换 复制代码 代码如下: mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) 搜索subject中匹配pattern的部分, 以replacement进行替换. 2. 子字符串替换 复制代码 代
-
JS正则表达式替换字符串replace()方法实例代码
目录 replace()方法介绍 简单用法 重点:函数替换 补充:替换特殊字符 总结 replace()方法介绍 replace()方法执行搜索替换操作. 它接收一个正则表达式作为第一个参数, 接收一个替换字符串作为第二个参数. 它搜索调用它的字符串, 寻找与指定模式匹配的文本. 如果正则表达式带g标志, replace()方法会替换字符串中的所有匹配项; 否则, 它只替换第一个匹配项. 如果replace()方法的第一个参数是一个字符串而非正则表达式, 这个方法会按照字面值进行搜索. 简单用法
-
SQL Server中利用正则表达式替换字符串的方法
建立正则替换函数,利用了OLE对象,以下是函数代码: --如果存在则删除原有函数 IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL DROP FUNCTION dbo.RegexReplace GO --开始创建正则替换函数 CREATE FUNCTION dbo.RegexReplace ( @string VARCHAR(MAX), --被替换的字符串 @pattern VARCHAR(255), --替换模板 @replacestr VARCHAR
-
C++实现将一个字符串中的字符替换成另一个字符串的方法
本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考.具体方法如下: 题目要求: 原地实现字符串中的每个空格替换成"%20",例如输入"We are happy", 输出"We%20are%20happy" 被替换的字符串当然不仅仅是空格,上面只是个例子 这是道很好的题目,也是百度面试中的一道题,题目不难,但是问题得考虑全面.这里给出如下实现代码: #include <iostream> #inc
-
mysql基于正则实现模糊替换字符串的方法分析
本文实例讲述了mysql基于正则实现模糊替换字符串的方法.分享给大家供大家参考,具体如下: 例如: abcd(efg)hijk 替换之后是abcdhijk 复制代码 代码如下: update tabaleA set name = replace(name, substring(name, locate('<contact>', name),locate('</contact>', name)-locate('<contact>'+10, name)),''); 执行之后
-
JavaScript使用replace函数替换字符串的方法
本文实例讲述了JavaScript使用replace函数替换字符串的方法.分享给大家供大家参考.具体如下: JavaScript通过replace函数替换字符串,下面的代码将Visit Microsoft中的MicroSoft替换成jb51.net <!DOCTYPE html> <html> <body> <p> Click the button to replace "Microsoft" with "jb51.net&qu
-
python同时替换多个字符串方法示例
本文介绍了python同时替换多个字符串方法示例,分享给大家,具体如下: import re words = ''' 钟声响起归家的讯号 在他生命里 仿佛带点唏嘘 黑色肌肤给他的意义 是一生奉献 肤色斗争中 年月把拥有变做失去 疲倦的双眼带着期望 今天只有残留的躯壳 迎接光辉岁月 风雨中抱紧自由 一生经过彷徨的挣扎 自信可改变未来 问谁又能做到 可否不分肤色的界限 愿这土地里 不分你我高低 缤纷色彩闪出的美丽 是因它没有 分开每种色彩 年月把拥有变做失去 疲倦的双眼带着期望 今天只有残留的躯壳
随机推荐
- JS修改css样式style浅谈
- asp.net中Word转Html的办法(不需要WORD组件)
- Mybatis传list参数调用oracle存储过程的解决方法
- SSH框架网上商城项目第4战之EasyUI菜单的实现
- Thinkphp中import的几个用法详细介绍
- node+express+ejs制作简单页面上手指南
- C#中执行批处理文件(*.bat)的方法代码
- Material Design系列之Behavior实现支付密码弹窗和商品属性选择效果
- 浅析js中2个等号与3个等号的区别
- PHP日期处理函数 整型日期格式
- Django Ajax的使用教程
- java和javascript获取word文档的书签位置对比
- C#无损高质量压缩图片实现代码
- jQuery Easyui Treegrid实现显示checkbox功能
- JavaScript中Function()函数的使用教程
- node.js中的fs.fchmod方法使用说明
- JavaScript中三个等号和两个等号你了解多少
- [注册表]禁止图片预览
- IE修改INI的优化提速方法附IE 6.INI文件
- JS中setTimeout和setInterval的最大延时值详解