带有strpos检查的str_replace函数可以避免额外的工作吗?方法一...if(strpos($text,$tofind)!==FALSE)$text=str_replace($tofind,$newreplace,$text);...方法二...$text=str_replace($tofind,$newreplace,$text);...问题:这两种方法都有效,但是......我想知道strpos-checking(或其他)是好方法还是坏方法,无用(和优化反模式)。 最佳答案 您可以保存一些str_replace()调用
我有这段代码:functionqueryString(){//matchesupto10digitsinpagenumber$query_string=eregi_replace("page=[0-9]{0,10}&","",$_SERVER['QUERY_STRING']);return$query_string;}当我运行时它返回这个错误:警告:preg_match()[function.preg-match]:分隔符不能是字母数字或反斜杠 最佳答案 如果你要使用preg_replace,你需要一个开始和结束分隔符$query_
我想从html文件中动态删除特定标签及其内容,并考虑使用preg_replace但无法获得正确的语法。例如,基本上它应该做类似的事情:将“”之间(包括)之间的所有内容替换为空。有人可以帮我解决这个问题吗? 最佳答案 简单的家伙。要有一个不贪婪的正则表达式,使用U修饰符要使其成为多行,请使用s修饰符。知道这一点,要删除所有段落,请使用此模式:#]*>(.*)?#sU解释:我使用#分隔符不必保护我的\字符(以获得更易读的模式)]*>:检测开头段落的部分(假设样式,例如)(.*)?:一切(在“不贪婪模式”下):显然,结束段落希望对您有所帮
我想在PHP中使用preg_replace将字符串末尾的多余空格替换为空。我正在创建一个大的单词数据库,但不知何故,一些单词在末尾有额外的空白。 最佳答案 你应该使用rtrim反而。它将删除字符串末尾的多余空格,并且比使用preg_replace更快。$str="Thisisastring.";echortrim($str);速度比较-preg_replace与trim//Ourstring$test='TestString';//Testpreg_replace$startpreg=microtime(true);$preg=
说我有这个。$string="anyting1234anytingabcd";$regex="#([])#";echopreg_replace($regex,'',$string);输出是abcd但是我想要1234abcd我该怎么做? 最佳答案 像这样:preg_replace('/(]*>)(.*?)()/i','$1$3',$string);如果你也想删除div:preg_replace('/]*>.*?/i','',$string);仅用类名替换div中的内容,不替换其他类:preg_replace('/(]*>)(.*?)(
因此,我尝试使用“产品”的ID作为每个产品的索引键来返回一个查找“全部”数组。通常它返回:array((int)0=>array('Product'=>array('id'=>'1232','category_id'=>'330','name'=>'Product#1',)),(int)1=>array('Product'=>array('id'=>'1245','category_id'=>'310','name'=>'Product#2',)),(int)2=>array('Product'=>array('id'=>'1248','category_id'=>'312','nam
我正在将我发现的eregi_replace函数转换为preg_replace,但eregi字符串几乎包含键盘上的每个字符。所以我尝试使用£作为分隔符..它目前正在工作,但我想知道它是否可能会导致问题,因为它是一个非标准字符?这是eregi:functionmakeLinks($text){$text=eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)','\\1',$text);$text=eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]
我用http://gskinner.com/RegExr/生成了以下正则表达式代码它在哪里工作,但是当我用PHP执行它时,它无法在替换字符串中使用匹配项。preg_replace('/(?)\b\w*\b|^\w*\b/','$&','anexample');输出:$&example预期:anexample我知道显然$&没有做正确的事情,但我怎样才能让它工作? 最佳答案 改用这个试试preg_replace('/(?)\b\w*\b|^\w*\b/','$0',$string);$0表示它将成为您的正则表达式中第一个匹配的东西,$1
我是cakephp的新手,并尝试使用控制台工具生成一些CRUD操作。它工作正常,除了一张table(最大的)。尝试添加新元素时,返回:Error:Calltoamemberfunctionfind()onanon-objectFile:C:\wamp\www\cakephp\app\Controller\ChantiersController.phpLine:50这是第50行及以后的代码:$programs=$this->Chantier->Program->find('list');$etats=$this->Chantier->Etat->find('list');$types=$
我想用一个特定的词替换多个同义词。结果:本田是一辆汽车。雷克萨斯是一辆汽车。日产是一辆汽车。Scion是一辆汽车。谁能告诉我用“汽车”一词替换“车辆、卡车、轿跑车、轿车”的简洁方法,而不是我单独替换所有4个。谢谢。 最佳答案 $a=array('truck','vehicle','sedan','coupe');$str='Hondaisatruck.Toyotaisavehicle.Nissanisasedan.Scionisacoupe.';echostr_replace($a,'car',str_replace('Toyota