草庐IT

PREG_REPLACE_EVAL

全部标签

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_match 错误 : Compilation failed: missing terminating ] for character class

我在for循环中读取了一系列.txt文件。我在一些文本文件中放置了一个token,格式为[widget_]因此,例如,文本文件的全部内容可能是[widget_search]。另一个文本文件可能包含内容[widget_recent-posts]。其他人可能只有html格式的文本,根本没有token。在for循环中,我正在执行preg_match以查看文本文件的内容是否与我的标记模式匹配。如果匹配,我将执行一些条件代码。但是,当我运行跟踪测试以查看是否存在匹配时出现错误。错误是:警告:preg_match()[function.preg-match]:编译失败:在C:\xampplite\

PHP - preg_match - 如何将字符串的大写/小写与它之前或之后的任何内容相匹配?

我有一个函数的一部分是这样的:if(preg_match("#\bscript\b#",$userInput)){$bannedWord='script';logHax();returnTRUE;}这导致了我试图完成的问题,因为它只会匹配确切的单词“script”,而不匹配它的变体,如“ScriPt”或“”。我想要的是不匹配字符串的示例以及原始字符串返回true。 最佳答案 怎么样:if(preg_match("/]*>/i",$userInput)){$bannedWord='script';logHax();returnTRUE

php - 如何将可变模式与 preg_match 一起使用?

我不知道这些数据是否足够,但我有preg_match('/SAMPLETEXT/',$bcurl,$cookie1);我想知道我能不能做到这一点preg_match($newfunction,$bcurl,$cookie1);但是当我这样做时,我收到此错误“警告:preg_match()[function.preg-match]:定界符不能是字母数字或反斜杠”。如何让它检查我的新函数,而不是只检查“SAMPLETEXT”。 最佳答案 尝试preg_match("/$newfunction/",$bcurl,$cookie1);以便您

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

php - preg_split 反斜杠

在我的PHP代码中,我在字符串中分配了带有命名空间的类名,例如:$my_class_name;//="Aaa\Bbb\Ccc";//thisisnotinsourcecode,justvardump我只需要中间名,在我的例子中是“Bbb”。我试着用这个:$result_array=preg_split("/\\/",$my_class_name);但是,它不起作用。我需要在正则表达式"/\\\/"中使用三重反斜杠才能使其正常工作。我的问题是:为什么我需要其中三个?我总是通过加倍来逃避反斜杠特殊功能。 最佳答案 你想在你的正则表达式中

php - preg_match "Compilation failed: missing )"

这可能是一个愚蠢的错误,但我有一个正则表达式应该匹配什么阿拉拉afkdsf[]afadf43fds["guyish"]但不是以数字开头的字符串这是代码preg_match('~^[A-Za-z][A-Za-z0-9]*(\[(?P"(?:.*(?:(?\\\\)*\").*|.*)+(?:(?\\\\)*"))\]|\[\]|)$~',trim($item[0],"\r"),$matches)但是当我执行它时,我得到错误Compilationfailed:missing)atoffset95当我执行它时here它工作正常吗?代码有什么问题?更新可读的正则表达式:~^[A-Za-z][A

php - preg_replace() 模式删除 php 中的括号和内容

我想使用preg_replace()删除括号及其内容,但我无法在模式中使用惰性(非贪婪),因为结束括号是结束字符,括号之间的文本始终是一个随机字符长度,可以包含数字、下划线和连字符。代码-$array=array("Textiwanttokeep(txttoremove)","Randomtxt(somemorerandomtxt)","Keepthis(remove)","Ilikebananas(txt)");$pattern="@pattern@";foreach($arrayas$new_txt){$new_outputs.=preg_replace($pattern,'',$

PHP: preg_replace (x) 发生?

我最近问了一个类似的问题,但没有得到明确的答案,因为我太具体了。这个更广泛。有人知道如何替换正则表达式模式中出现的(x)吗?示例:假设我想替换字符串中第5次出现的正则表达式模式。我该怎么做?这是模式:preg_replace('/{(.*?)\|\:(.*?)}/','替换',$this->source);@anubhava请求示例代码(最后一个功能不起作用):$sample='blahasadaasdas{load|:title}stevejobs{load|:css}windowsapple';$syntax=newsyntax();$syntax->parse($sample);