草庐IT

PREG_REPLACE_EVAL

全部标签

php - 在 nl2br 的对面?是 str_replace 吗?

所以函数nl2br很方便。除了在我的网络应用程序中,我想做相反的事情,将换行符解释为新行,因为它们将被回显到预先填写的表单中。str_replace可以取并用我想要的任何东西替换它,但是如果我输入\n,它实际上会回显一个反斜杠和一个n。仅当我在脚本中间放置文字换行符并打破缩进(因此没有尾随空格)时,它才有效。参见:','',$foo)?>我是否缺少转义字符?我想我尝试了所有组合... 最佳答案 可能会有一些情况你的代码不够用;那么,像这样的东西如何做你的替换:$html='thisissometext!';$nl=preg_repl

PHP preg_match 长度 3276 限制

在某些情况下,PHP的preg_match似乎对匹配重复字符有3276个字符的限制。即^(.|\s){0,3276}$有效,但^(.|\s){0,3277}$无效。它似乎并不总是适用,因为/^(.){0,3277}$/有效。我无法在PHP文档或错误跟踪器中的任何地方找到它。数字3276似乎有点奇怪,我唯一能想到的是它大约是32767的1/10,这是有符号16位整数的极限。preg_last_error()返回0。我已经在http://www.phpliveregex.com/上重现了这个问题以及我的本地系统和网络服务器。编辑:看起来我们从代码中得到“警告:preg_match():编译

PHP 多维数组 : replace all keys with concatenation of two values

我在PHP中有一个多维数组,其中外部数组包含数千个项目,内部的每个项目都是一个数组本身,其值为“key1”、“key2”和“count”:myExistingArray(size=99999VERYBIG)public0=>array(size=3)'key1'=>string'15504''key2'=>string'20''count'=>string'1'public1=>array(size=3)'key1'=>string'15508'(length=5)'key2'=>string'20'(length=2)'count'=>string'2'(length=1)publi

php - preg_match :print: class matches tab character

for($i=0;$i";elseecho"chr($i)doesntmatch:print:";在我的Windows系统上,chr(9)的输出是:chr(9)matches:print:同样的代码,在Linux系统上,输出为:chr(9)doesntmatch:print:为什么:print:类仅在Windows上匹配\t?PHP5.5.12 最佳答案 这可能是语言环境问题,但您手头上一定有一个非常时髦的语言环境。POSIX规定没有cntrl可以print,没有space或blank可以print除非它是空格字符本身。在“C”语言

php preg_replace 删除整行(从多行的 block 中),如果它包含一个词的出现

伙计们(preg_replacegurus);我正在寻找一个preg_replace片段,我可以在php文件中使用它,如果一个词出现在特定行中,则整行被删除/替换为空行伪代码:$unwanted_lines=array("word1","word2"."word3");$new_block_of_lines=preg_replace($unwanted_lines,block_of_lines);谢谢。 最佳答案 表达式首先,让我们计算出匹配单词数组所需的表达式:/(?:word1|word2|word3)/(?:...)表达式创建

php - preg_replace 使用模式作为替换数据数组的索引

我想知道是否有一种简单的方法可以将preg_replace中的匹配模式用作替换值数组的索引。例如preg_replace("/\{[a-z_]*\}/i","{$data_array[\1]}",$string);搜索{xxx}并将其替换为$data_array['xxx']中的值,其中xxx是一个模式。但是这个表达式不起作用,因为它的php.ini无效。我已经写了下面的函数,但我想知道是否可以简单地做到这一点。我可以使用回调,但如何将$data_array也传递给它?functionmailmerge($string,$data_array,$tags='{}'){$tag_star

php - preg_replace 导致美元符号被删除

我有一个电子邮件系统,用户可以在其中写一条消息,它会发送消息。我刚刚发现的主要问题,请考虑这段代码$findEmail=$this->Data->field('body',array('id'=>1610));//$getUserEmailTemplatewilltakefrmdbaseande.g://Hi,@@MESSAGE@@.From:StackOverflow//Itshouldchange@@MESSAGE@@parttodatafrom$findEmail(inthisexampleisthe$74.97...)$getUserEmailTemplate=$findUse

php - disable_functions php.ini eval 函数仍然有效

我在试图禁用我的php.ini中的某些功能时遇到了一个小问题。首先,我不是服务器的所有者,所以我无法更改主php.ini配置。但是我试图用服务器所有者给我的指令来改变它。这是我在我创建的php.ini文件中放入的行disable_functions=eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source在我的phpinfo()中,我可以在本地值和主值中看到这些功能被禁用。但我的问题从这里开始。在女巫的同一个文件中,我运行phpinf

php - preg_split 与 mb_split

根据PHPmanual,PCRE正则表达式的u修饰符为模式和主题字符串启用UTF-8支持。考虑到这一点,使用带有u修饰符的PCRE表达式和相应的mb_*多字节字符串函数之间有什么区别吗?(假设所有字符串都是UTF-8编码。)例如,考虑preg_split与mb_split:两者preg_split('/'.$pattern.'/u',$string);和mb_split($pattern,$string);似乎返回相同的结果。那么,应该优先选择哪一个呢?这有关系吗? 最佳答案 主要区别在于preg_函数使用pcrelibrary,当

php - preg_replace() 正则表达式以匹配 CSS 文件中的相对 url() 路径

我正在组合一些CSS文件并将它们写入单独目录中的文件。我正在尝试替换相对url()值以使用新文件位置,忽略任何绝对URL。这是一些示例CSS:#TEST{background:url(test.jpg);background:url('test.jpg');background:url("test.jpg");background:url(http://example.com/test.jpg);background:url('https://example.com/test.jpg');background:url("http://example.com/test.jpg");bac