草庐IT

PREG_REPLACE_EVAL

全部标签

php - preg_replace() 仅字符串的特定部分

我总是有正则表达式的麻烦,我基本上有一个url,例如:http://somedomain.com/something_here/bla/bla/bla/bla.jpg我需要的是一个preg_replace()来将something_here替换为一个空字符串,并保留其他所有内容。我试过以下方法,它替换了错误的部分:$image[0]=preg_replace('/http:\/\/(.*)\/(.*)\/wp-content\/uploads\/(.*)/','$2'.'',$image[0]);这最终只留下我想替换的部分,而不是实际替换它! 最佳答案

php - str_replace : Match whole word only

由于str_replace()在“:Name:Name_en”中两次匹配“:Name”,我只想匹配整个单词的结果。由于thisanswer,我想切换到preg_replace().$str=":Name:Name_en";echo$str.chr(10);$str=preg_replace('/\b'.':Name'.'\b/i','"Test"',$str);echo$str;但是由于冒号的缘故,这不起作用。没有更换发生。RegExp会是什么样子?\b是单词边界。但是我认为冒号不属于这样的词界。 最佳答案 您不需要在字符串的开头使

php - ldap_mod_replace() [function.ldap-mod-replace] : Modify: Server is unwilling to perform

出现错误:Serverisunwillingtoperform同时通过PHP在AD中更改unicodePwd。但是,我能够搜索、添加、删除和修改用户的任何属性。使用Administrator账号绑定(bind),admin拥有修改任何用户密码的全部权限。这是我使用的代码: 最佳答案 要通过LDAP在AD中设置密码,您需要做很多事情才能完全正确。您需要使用SSL连接(ldaps://)密码需要用引号括起来(引用的)密码需要以16位unicode(UTF-16LE)编码假设你试图设置的密码是普通的ascii字符,unicode转换可以通

PHP preg_replace - 使用匹配项作为键从数组中查找替换项

我有一个字符串,它可以包含多个匹配项(任何由百分比标记包围的单词)和一个替换数组-每个替换项的键是正则表达式的匹配项。一些代码可能会更好地解释......$str="PHP%foo%my%bar%in!";$rep=array('foo'=>'does','bar'=>'head');期望的结果是:$str="PHPdoesmyheadin!"我尝试了以下方法,但均无效:$res=preg_replace('/\%([a-z_]+)\%/',$rep[$1],$str);$res=preg_replace('/\%([a-z_]+)\%/',$rep['$1'],$str);$res=

php - 注入(inject)攻击(我以为我被保护了!)<?php/**/eval(base64_decode(无处不在

我有一个完全自定义的PHP站点,其中包含大量数据库调用。我刚刚被注入(inject)黑客攻击。下面的这一小段代码出现在我的许多PHP页面中。我对我的SQL调用等非常小心;它们都是这种格式:$query=sprintf("UPDATESalesSET`Shipped`='1',`Tracking_Number`='%s'WHEREID='%s'LIMIT1;",mysql_real_escape_string($trackNo),mysql_real_escape_string($id));$result=mysql_query($query);mysql_close();郑重声明,我很

php - preg_replace 去除非打印字符似乎也去除了所有外来字符

在将值插入数据库之前,我使用以下正则表达式从用户输入中删除非打印控制字符。preg_replace('/[\x00-\x1F\x80-\xFF]/','',$value)在utf-8字符串上使用它有问题吗?它似乎完全删除了所有非ascii字符。 最佳答案 部分问题是您没有将目标视为UTF-8字符串;为此,您需要/u修饰符。此外,在UTF-8中,任何非ASCII字符都由两个或多个字节表示,所有字节都在\x80..\xFF范围内。试试这个:preg_replace('/\p{Cc}+/u','',$value)\p{Cc}是控制字符的U

java - 与此 preg_replace 等效的 Java 是什么?

wordwordword";$str=preg_replace("/word(?!([^)/i","repl",$str);echo$str;#replrepl?>来源:http://pureform.wordpress.com/2008/01/04/matching-a-word-characters-outside-of-html-tags/不幸的是,我的项目需要一个仅适用于Java的语义库...//谢谢塞尔索 最佳答案 使用String.replaceAll()方法:classTest{publicstaticvoidmain

PHP preg_replace : remove punctuation from beginning and end of string

我可以在PHP中使用什么正则表达式来删除字符串开头和结尾的所有标点符号? 最佳答案 我不会使用正则表达式,可能是...$str=trim($str,'"\'');第二个参数是您定义的标点符号。假设您真正的意思是去掉不是字母、数字等的东西,我会选择...$str=preg_replace('/^\PL+|\PL\z/','',$str); 关于PHPpreg_replace:removepunctuationfrombeginningandendofstring,我们在StackOverf

php - eval(),有什么意义呢?

关于eval()作为函数的官方文档说:Amongotherthings,thiscanbeusefulforstoringcodeinadatabasetextfieldforlaterexecution.我对此非常困惑。PHP文档是否建议将PHP行存储到数据库中?什么?这不是很不安全吗?如果我知道数据库中有一个作为PHP执行的字符串怎么办?那不是特别危险吗?我只需要一个Sql注入(inject)来对该网站做任何我想做的事,我想做的事。我可以删除整个数据库,我可以从脚本中获取所有内容,我可以做任何事情。这怎么会有这么大的帮助?能否请您提供一些示例,说明此eval()有何用处?另外,我可

php - 在 PHP : (*UTF8) Works on Windows but not Linux 中使用 preg_match 匹配 UTF 字符

我有一个简单的正则表达式来检查用户名:preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[_.-])+$/i',$username);在本地测试中(使用WAMP的Windows7),这将允许用户名使用UTF字符(例如é或ñ)。但是,当我在实际托管网站的服务器上进行测试时,我收到以下警告:Warning:preg_match()[function.preg-match]:Compilationfailed:(*VERB)notrecognizedatoffset5in/home/sites/vgmusic.com/test/Core/Impl/Fo