在这个例子中,我有单词así,它以带重音的i字符结尾。$str="Astringcontainingthewordasíwhichshouldbechangedtocolorpurple";$prac[]="/\basí\b/i";$prac2[]="\$0";$str=preg_replace($prac,$prac2,$str);echo$str;它不会改变。但是,如果我有一个不以重音字符结尾或开头的单词,它确实会改变。例如:$str="Astringcontaininganotherwordwhichshouldbechangedtocolorpurple";$prac[]="/
PHP中是否有一个编码函数可以对字符串进行编码,并且生成的输出将只包含字母和数字?我会使用base64,但仍然有一些不是数字/字母数字的东西 最佳答案 您可以使用base32(代码易于谷歌搜索),这是base64的一种标准替代方法。或者求助于bin2hex()和pack("H*",$hex)反转。然而,十六进制编码会导致大小加倍。 关于PHP编码只包含字母和数字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow
我有这个代码。它打印出我想要的312,3。但是,如果我提供像D12/336这样的输入,那么它就不起作用了。我想让它打印336,D12我该怎么做?以及我当前不处理此字母数字的代码有什么问题?是因为我用了\d吗?编辑:我希望它也能处理这样的输入148/DIG.111那么输出应该是DIG.111,148 最佳答案 是的\d只包含数字。您可以尝试\w而不是字母数字,但另外它还包括_要成为Unicode,您可以努力~[\pL\d.]+/[\pL\d.]+~u\pL是具有“字母”属性的Unicode代码点最后的u开启使用该功能所需的UTF-8模
我实际上正在使用zend框架开发一个用php编码的Web应用程序。我需要用法语和英语翻译每一页,所以我使用csv文件来完成。我的问题是,当单词以É或À等重音字母开头时,字母会消失,但会显示单词的其余部分。例如,如果我的csv文件包含Écriture,它显示criture.但是如果我有exécution,它显示exécution没有任何问题。每次我想在我的View中显示文本时,我只需调用translate('linetocallincsv');?>并显示我的文字。就像我说的,我的应用程序是用UTF-8编码的,我对特殊字符没有任何问题,除非它们是第一个。我用谷歌搜索了它,但目前找不到任何东
我正在检查用户输入的用户名我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字母、数字和。-_即只有字母数字点破折号和下划线,我尝试了htaccess中的正则表达式,就像这样([A-Za-z0-9.-_]+)就像这样,但它似乎不起作用,它为简单的alpha用户名提供false。$text='username';if(preg_match('/^[A-Za-z0-9.-_]$/',$text)){echo'true';}else{echo'false';}我怎样才能让它发挥作用?我打算像这样在函数中使
我想匹配字符串中的文本,同时忽略它的字母大小写。如果字母大小写不相同,我的示例将失败。/*$text:fOoBaR$str:littlebrownFoobarreturn:littlebrownFoobar*/functionbold($text,$str){//Thisfailstomatchifthelettercasesarenotthesame//Note:Idonotwanttochangethereturned$strlettercase.returnpreg_replace('/('.str_replace(array("/","\\"),array("\/","\\")
我已经搜索了2个小时了,但还是没找到。我需要评估帐户名称的输入。这只能包含数字(0-9)、字母(a-z和A-Z)和点(.).其他一切都是被禁止的。所以,没有下划线(_),加上(+)等等。有效的帐户应该是这样的,例如:john.greenluci.mayer89admin我尝试了很多preg_match/regex示例,但无法正常工作。每当我执行echopreg_match(...)时,我都会将1设为true。$accountname="+_#luke123*";echopreg_match("/[a-z0-9.]/i",$accountname);//-->givesback1astr
很快,我将在URL中传递41。confirm.php打印41。http://localhost/yii2-app-basic/web/site/confirm/41但是,当我在URL中传递“cfeb70c4c627167ee56d6e09b591a3ee”或“41a”时,http://localhost/yii2-app-basic/web/site/confirm/41a显示错误NOTFOUND(#404)Pagenotfound.TheaboveerroroccurredwhiletheWebserverwasprocessingyourrequest.Pleasecontactu
我需要从各种字符串创建url。因此,尝试用连字符(-)替换所有非字母数字字符及其所有组合$string="blue-sky";$string=preg_replace("/[^A-Za-z0-9]/",'-',$string);echo$string;结果-blue---sky预期-blue-sky。 最佳答案 使用+符号用一个替换字符替换多个字符:string=preg_replace("/[^A-Za-z0-9]+/",'-',$string); 关于php-替换所有非字母数字字符的
字符串示例:"Sometext.....!!!!!!!!??????"使用PHP如何获取最后一个字母(甚至是字母数字字符)的位置,在此示例中是字母t? 最佳答案 你可以使用preg_match_all与regularexpression\p{L}tofindallUnicodeletters.使用附加标志PREG_OFFSET_CAPTURE您还可以获得偏移量:$str="Sometext.....!!!!!!!!?????";if(preg_match_all('/\p{L}/u',$str,$matches,PREG_OFFSE