寻找一个有关字符串的函数 $str=str_replace("\"","“",$str);$str=str_replace("\"","”",$str); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试用一下这个mixed str_replace ( mixed search, mixed replace, mixed subject)search是你要被转换的字符串或者是数组,replace是要转换得到的字符串或者数组,subject是整个字符串或者数组它比ereg_replace() or preg_replace(). 要快的多 phpteam(George): 你的函数我知道,但不能实现我的功能。你可以实现第一个"换成“但无法将第二个 " 换成 ”。 _Shakespeare(网络骑士) : 你的思路与phpteam(George) 一样,我的要求是第一个"替换成“,但第二个"要替换成”,好像你们的那个函数实现不了。 $str='a"b"c"d"e"f"g';echo preg_replace('/"([^"]+)"/U',"“\\1”",$str); 秋水得正则表达式用的太棒,但是我写的不能白写了,还是帖出来算了function replaceQuot($str){ $m=1; for($n=0;$n<strlen($str);$n++){ if(substr($str,$n,1)=="\""){ if($m==0){ $m=1; $str=substr($str,0,$n)."“".substr($str,$n+1); }else{ $str=substr($str,0,$n)."”".substr($str,$n+1); $m=0; } } } return $str;} 发现秋水得bug,如果两个""在一起就不行了try:$str="\"adsfaadsfadsf\"adfadsfasdfasfd\"\"\"adsfasfdafds\"afds\"sdf\"";用上面的函数就不会 就知道有人会说,呵呵解决方法 +=>*echo preg_replace('/"([^"]*)"/U',"“\\1”",$str);不用测也知道你函数的漏洞,如果不成双出现的"呢? 秋水好厉害,hehe.如果不成对,最后一个也会转换不小心写反了,纠正:function replaceQuot($str){ $m=1; for($n=0;$n<strlen($str);$n++){ if(substr($str,$n,1)=="\""){ if($m==1){ $m=0; $str=substr($str,0,$n)."“".substr($str,$n+1); }else{ $str=substr($str,0,$n)."”".substr($str,$n+1); $m=1; } } } return $str;} qiushuiwuhen(秋水无恨) AND vivanboy(我是谁?) : 正则表达式好难看懂,不过好像比较简单。函数的实现我也写过,思路是一次替换就将第一个和最后一个分别替换成“和”,但结果是替换了,字符串又重写了一遍(显示二次)。不过你们的应该是对的。接分吧! $str="123456789";$str[2]="0";echo $str; qiushuiwuhen(秋水无恨) 你写的是什么意思呀? 中文乱码问题:帮忙看一下是哪里出错了,谢谢了 php文件点击链接 从新调用数据问题 求教正则 utf-8 与 utf8 可以通用吗?若不通用,有和区别? CSDN的可用分问题,不是很明白。 帮我看看这段代码正确吗: 对于php编辑器的感想,顺便中秋节散分 关于PHP分页显示留言 请问哪个站点有丰富的PHP各种代码与程序下载?写出地址的有分。 又一个文本框的问题?(急!) phpMyAdmin需要怎样配置才能正确运作啊?急救!!! 在php中,自动换行如何表示?
mixed str_replace ( mixed search, mixed replace, mixed subject)
search是你要被转换的字符串或者是数组,replace是要转换得到的字符串或者数组,subject是整个字符串或者数组
它比ereg_replace() or preg_replace(). 要快的多
你的函数我知道,但不能实现我的功能。你可以实现第一个"换成“
但无法将第二个 " 换成 ”。
你的思路与phpteam(George) 一样,我的要求是第一个"替换成“,但第二个"要替换成”,好像你们的那个函数实现不了。
echo preg_replace('/"([^"]+)"/U',"“\\1”",$str);
function replaceQuot($str){
$m=1;
for($n=0;$n<strlen($str);$n++){
if(substr($str,$n,1)=="\""){
if($m==0){
$m=1;
$str=substr($str,0,$n)."“".substr($str,$n+1);
}else{
$str=substr($str,0,$n)."”".substr($str,$n+1);
$m=0;
}
}
}
return $str;
}
try:
$str="\"adsfaadsfadsf\"adfadsfasdfasfd\"\"\"adsfasfdafds\"afds\"sdf\"";
用上面的函数就不会
解决方法 +=>*
echo preg_replace('/"([^"]*)"/U',"“\\1”",$str);不用测也知道你函数的漏洞,如果不成双出现的"呢?
不小心写反了,纠正:
function replaceQuot($str){
$m=1;
for($n=0;$n<strlen($str);$n++){
if(substr($str,$n,1)=="\""){
if($m==1){
$m=0;
$str=substr($str,0,$n)."“".substr($str,$n+1);
}else{
$str=substr($str,0,$n)."”".substr($str,$n+1);
$m=1;
}
}
}
return $str;
}
$str[2]="0";
echo $str;