出于业务逻辑的原因,我需要将字符串中的字符“Æ”转换为“Ae”。然而,尽管mb_detect_encoding()告诉我字符串是UTF-8,但我不知道该怎么做。(出于业务逻辑的其他原因,在替换字符串之前对htmlentities()字符串将是一个问题,正如其他Google搜索所建议的那样。)我首先尝试的是这个,使用测试字符串“Æther”:returnstr_replace("Æ",'Ae',$string);不幸的是,它实际上并没有在文本中找到Æ,返回“Æther”。returnstr_replace(chr(195),'Ae',$string);找到Æ并替换它,但随后添加了一个未知
我有这样一个字符串:http://mysite.com/script.php?fruit=apple我有一个这样的关联数组:$fruitArray["apple"]="green";$fruitArray["banana"]="yellow";我正在尝试在字符串上使用preg_replace,使用数组中的键来反向引用apple并将其替换为绿色,如下所示:$string=preg_replace('|http://mysite.com/script.php\?fruit=([a-zA-Z0-9_-]*)|','http://mysite.com/'.$fruitArray[$1].'/'
我有这样的正则表达式:^page/(?P\d+)-(?P[^\.]+)\.html$和一个数组:$args=array('id'=>5,'slug'=>'my-first-article');我想要一个函数:my_function($regex,$args)这将返回这个结果:page/5-my-first-article.html如何实现?类似于https://docs.djangoproject.com/en/dev/ref/urlresolvers/#reverse 最佳答案 有趣的挑战,我编写了一些适用于此示例的代码,请注意您
在输入字段中需要将,替换为.。使用HTM这样的代码可以正常工作onkeyup="this.value=this.value.replace(/,/g,'.')"但需要像这样在php中使用(带回显):echo'';用php不行。如果使用此this.value.replace(/,/g,/./)则,将替换为/./。尝试过(/,/g,"/./"),(/,/g,/"."/),(/,/g,.)没有任何效果(我的意思是,不会更改为.)。有什么想法吗? 最佳答案 您必须在PHP代码中使用反斜杠转义'。echo'';否则你就是把你的绳子切成小块,然
我正在处理这段旧代码,遇到了这个-但失败了:preg_replace('!s:(\d+):"(.*?)";!e',"'s:'.strlen('$2').':\"$2\";'",$sObject);它告诉我preg_replacee修饰符已弃用,改为使用preg_replace_callback。据我所知,我应该用回调函数替换's:'.strlen('$2').':\"$2\";'部分替补上场。我不太明白的是我将要替换的正则表达式的作用。获取填充在数据库字段中的php序列化数据(愚蠢,我知道......),长度字段损坏并修复它们以重新插入是有点的一部分。那么谁能解释一下那个位在做什么,或
我想搜索我的推特状态对象的文本属性并将@username换成@username.到目前为止我尝试过的是这样的:$pattern='/([@]{1})([a-zA-Z0-9\_]+)/';$replace='\1\2';$new_string=preg_replace($pattern,$replace,$text);但它不做任何替换。我知道我的regexp是错误的,但我无法弄清楚确切的位置/原因。帮忙?**编辑:...根据要求提供示例数据?$text='@janesmithIlikethat,butmyfriend@johndoesaiditbetter.';期望的输出:@janesm
我似乎无法找出正则表达式来匹配格式中的任何字符串**(anythingthat'snot**)**我试过在php中这样做$str="**helloworld*hello**";$str=preg_replace('/\*\*(([^\*][^\*]+))\*\*/s','$1',$str);但没有进行字符串替换。 最佳答案 您可以使用assertion?!与字符配对.占位符:=preg_replace('/\*\*(((?!\*\*).)+)\*\*/s',这基本上意味着匹配任意数量的任何东西(.)+,但是.永远不能占据\*\*的位
我想在此正则表达式中允许使用欧元符号€,但它不会通过$val=ereg_replace($regex,"[^a-zA-Z0-9[:space:][:blank:]€+-]+",$_REQUEST[$var]); 最佳答案 你有安装mbstring吗?如果是这样,请尝试使用函数mb_ereg_replace().它将支持这个字符(甚至在UTF-8中)。编辑:还要检查mbregex是否打开。有些主机打开mbstring但禁用mbregex(我不知道为什么)。 关于php-PHPereg_re
这是如何完成的,分几行://$strrepresentsstringthatneedscleaning:$str="Stringwithline\nbreakandtoomuchspaces";//Cleanstringwithpreg_replace():$str=preg_replace('/[\x00-\x09\x0B-\x1F\x7F]|^+|+$/','',$str);$str=preg_replace('/\x0A|+/','',$str);echo$str;//Output:"Stringwithlinebreakandtoomuchspaces"我的问题集中在将两个pr
我想要一种从$keywords中删除$badwords元素的简单方法。我有什么(举个例子)$keywords=array('sebastian','nous','helene','lol');//itcouldbeanythinginfact$badwords=array('nous','lol','ene','seba');//arrayfullofstopwordsthatIwon'twritehere$filtered_keywords=array_filter(preg_replace($badwords,'',$keywords),'strlen');print_r($fil