jjzjj

replacement

全部标签

php - 为什么要同时使用 str_replace() 和 preg_replace()?

我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结

php - str_replace ('<' ) 可以保护我们免受用户注入(inject)代码的侵害吗?

好的,我有一些用户输入,我做了一个echostr_replace('我想知道,无论如何用户是否可以破坏此过滤器?最初我认为这个脚本非常安全,但在阅读了一些关于php、字符集和安全性的文章后我开始怀疑它的健壮性。 最佳答案 这取决于输入的最终位置。例如,如果在某个时候你最终得到了一个像这样构造的(糟糕的)模板......">alink然后有人可以通过简单地使用以下输入来注入(inject)代码:javascript:do_whatever()即使输出通常不会回显到href字段中,像这样..."href="http://www.goog

php - 为什么\\。平等的\。在preg_replace?

在top-votedanswer至thisfantasticquestion,以下正则表达式用于preg_replace调用(来自答案的auto_version函数):'{\\.([^./]+)$}'这个正则表达式的最终目标是从给定的文件名中提取文件的扩展名。但是,我对为什么这个正则表达式的开头起作用感到困惑。即:为什么\\.匹配方式与\.相同在正则表达式中?前者不应该匹配(a)一个文字反斜杠,后跟(b)任何字符,而第二个匹配一个文字句点吗?singlequotedstrings的规则说明\\产生文字反斜杠。考虑这个简单的例子:$regex1='{\.([^./]+)$}';//Var

PHP,从数组读取时str_replace出现问题

我是php的新手,我正在尝试编写一个脚本来读取CSV文件(file1.csv)并将文件中的单词与html文件(file2.html)中的单词进行比较,如果file2中有单词.html与file1.csv中的关键部分匹配它应该使用匹配的关键值更改file2.html内容..到目前为止我所做的是:$glossArray=array();$file_handle=fopen("file1.csv","r");while(!feof($file_handle)){$line_of_text=fgetcsv($file_handle,10000,';');$glossArray[$line_of

PHP 全局替换 ereg(i)(_replace)

我有150多个PHP文件需要更改(将ereg更新为preg_match)。我厌倦了手动更新它们,但它需要永远,我想确保我的所有替换都能在第一次工作。我该怎么做才能进行这种操作?这是我的ereg(i)的一些例子if(eregi("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)){/*...*/}if(eregi($regexp,$label,$match)){/*...*/}$string=eregi_replace("[[:space:]]+",'',$string);谢谢 最佳答案

php - 删除除最后一个逗号之外的逗号 w preg_replace

我头晕目眩,我试着自己做这个,但想不通。所以我将再次求助于你们的知识。这些都是我可能的字符串:Myheadisspinningwith,pregreplaceMyheadisspinning,with,pregreplaceMyheadis,spinning,with,pregreplaceMyhead,is,spinning,with,pregreplace(注意上面字符串中的逗号)我希望所有“preg-replaced”/“string-replaced”最后只有一个逗号。(就像第一个示例中显示的那样)我的头在旋转,pregreplace提前致谢;) 最

php - Twig/PHP - 使用 Replace 或 Regex 格式化字符串

如何在Twig中格式化字符串,如下所示:例如:img=05myphoto-Car.jpg我需要删除数字前缀和-我主要用它来根据文件名输出图像的标题期望的输出:MyphotoCar到目前为止,我已经从文档中尝试过:{{img|replace({'.jpg':"",'-':""})}}输出字符串05myphotoCar我还尝试了{{replace({'range(0,9)':""})}}//对于数字前缀-没有用 最佳答案 迟到总比不到好...只需注册它(对我来说是在index.php上)$app['twig']->addFilter('

PHP 使用 str_replace 替换或删除空行的简单方法

$line-out=str_replace('\r','',str_replace('\n','',$line-in));以上对我有用,但是,我在某处看到了一个[\n\r]示例,但我似乎找不到它。我只想去掉所有空白行。以上是在foreach循环中。感谢教导。 最佳答案 你不应该在变量名中使用-;)$line_out=preg_replace('/[\n\r]+/','',$line_in);$line_out=str_replace(array("\n","\r"),'',$line_in);手动输入:http://php.net/

php preg_replace ,我需要替换点后的所有内容(例如 340.38888 > 需要清理 340)

我需要替换点之后的所有内容。我知道这可以用正则表达式来完成,但我还是新手,我不明白正确的语法,所以请帮我解决这个问题。我尝试了下面的代码但是没有用:$x="340.888888";$pattern="/*./"$y=preg_replace($pattern,"",$x);print_r($x);谢谢,迈克尔 最佳答案 我可能是错的,但这听起来像是使用RegEx锤子来解决一个明显非钉子形状的问题。如果你只是想截断一个正float,你可以使用$x=340.888888;$y=floor($x);编辑:正如Techpriester的评论

php - 无法使用 str_replace 删除特殊字符

我有一个关于str_replace的小问题。我有一个带有破折号(-)的字符串,如下所示:Iwanttoremove-thedashhtml输出是Iwanttoremovethe–thedash我想这样做:$new_string=str_replace('-','',$string);我尝试用html_entity_decode解析字符串,用htmlspecialchars解析要删除的字符,但没有任何结果。我做错了什么?-编辑-这是我的脚本的完整代码:$title='SuperMarioGalaxy2-DebutTrailer';//FetchedfromtheDB,inth