草庐IT

PREG_REPLACE_EVAL

全部标签

php - 此代码中的 eval() 为何不安全?

我使用下面的代码来自动加载和声明类,这样我只需要将类文件放在名为classes的文件夹中。spl_autoload_regsister()中的部分对您来说似乎是不必要的,但它是作为WordPress插件正常工作所必需的。它使用eval()并且我看到很多网页都在谈论使用eval()是不好的并且会造成安全漏洞。那么这怎么可能是危险的呢?$strDirPath=dirname(__FILE__).'\\classes\\';$arrClassFiles=array_map(create_function('$a','returnbasename($a,".php");'),glob($str

php - 将文本链接替换为带有 preg_replace 的链接

我似乎在用指向已发布网站的链接替换文本链接时遇到问题,它不是链接。代码:$status_text=preg_replace('#(\A|[^=\]\'"a-zA-Z0-9])(http[s]?://(.+?)/[^()\s]+)#i','\\1\\3',$status_text);echo$status_text;$status_text是从名为contents的MySQL字段中提取的,并包含其他文本,但我只想链接链接。此外,我还希望它不显示完整的URL,只显示主域。更新:我们在同一页面上有另外两个preg_replaces,寻找在它们前面带有+和#的链接到网站区域的东西,它们目前可以

PHP: preg_match - "Delimiter must not be alphanumeric or backslash"

这个问题在这里已经有了答案:PHPusingpreg_replace:"Delimitermustnotbealphanumericorbackslash"error(5个答案)关闭7年前。有人知道这个正则表达式有什么问题吗?它在RegexPal和RegExr等网站上运行良好,但在PHP中它给了我这个警告但没有结果:Warning:preg_match()[function.preg-match]:Delimitermustnotbealphanumericorbackslash这是我的代码:preg_match('name="dsh"id="dsh"value="(.*?)"','n

php - 为什么 preg_match 不起作用?

自从“ereg”贬值后,我就开始使用“preg_match”。不幸的是,在我的代码中,它不接受我的有效电子邮件地址。我确信我正在使用的这个正则表达式正在工作,但我正在寻找的是执行此功能的替代方法或指出我做错了什么。这是我的功能:functionvalidate($email){$regex="^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([

php - 通过 "preg_match_all"函数特殊字符获取html内容时显示不正常,如何解决?

我正在使用下面的代码获取html内容,preg_match_all('/(.*?)/s',$str,$matches);echo$matches[1][0];内容已正确获取,但一些特殊字符和文本无法正常显示“responsetowhat?”显示为“responsetowhat?”butitdoesn't显示为但没关系。一些空白显示为如何解决这个问题..? 最佳答案 您有unicode问题,请尝试将其添加为脚本的第一行:header('Content-Type:text/html;charset=utf-8');

php - 似乎无法将精确字符串与 Preg_replace 匹配

我正在尝试使用php中的preg_replace函数来精确匹配字符串。我只想匹配具有单个“@”符号的实例。我还需要一个变量作为模式传入。$x="@hello,@@hello,@hello,@@hello"$temp='@hello'$x=preg_replace("/".$temp."/","replaced",$x);结果应该是:$x="replaced,@@hello,replaced,@@hello"提前谢谢你。 最佳答案 添加负数look-behind(?如果$temp匹配失败前面是@(或者,简单来说,如果@之前有一个@he

PHP preg_grep 反向匹配模式

我构建了一个简单的代码来解析几个磁盘中的所有音乐文件夹并将列表放入一个数组中。当文件夹名称是类别时,文件夹名称以多个空格开头,当它们是“最终文件夹”时,文件夹名称以单个空格开头。例如。看到这个结构:[0]=>/Volumes/SAMPLES/VOCALS/[1]=>/Volumes/SAMPLES/VOCALS/AFRICA/[2]=>/Volumes/SAMPLES/VOCALS/AcmeIncClubVocals/[3]=>/Volumes/SAMPLES/VOCALS/AtomicIncDanceVocals/[4]=>/Volumes/SAMPLES/VOCALS/AFRICA

PHP preg_match_all,检查和爆炸

我想检查'n'分解这个字符串:{$gallery#pager/collectionName/imageName/manual/no_effect/foo1/foo2/.../fooN}到:var_name[0]=>'gallery',modul_name[0]=>'pager',3[0]=>'collectionName',4[0]=>'imageName',5[0]=>'manual'...N[0]=>'fooN'我制作了以下正则表达式:/{\$(?P[^#]+)#(?P[^\/]+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)(?:\/(\w+)

c++ - node.js 内部 : How can I find out where `process.binding(' eval')` gets defined?

如何找到node.js的C++源代码中定义了JavaScript对象的位置,我可以通过process.binding('eval')访问它?-在这种特殊情况下,我已经发现它在/src/node_script.cc中,但是:我怎么知道我可以在哪里找到那个模块,当我只是看看/src/目录概览?我不想为了查找模块而遍历/src/中的所有文件。我在哪里可以找到有关process.binding()内部结构的一些深入信息?谢谢。 最佳答案 我今天也在找同样的东西。我不能保证没有更多内容,但这是我发现的。src/node_extensions.

hadoop - Pig 用户定义的函数不理解什么是 eval function()

我正在尝试分析以下代码,但无法弄清楚什么是Evalfunction()以及它的实际作用:packagemyudfs;importjava.io.IOException;importorg.apache.pig.EvalFunc;importorg.apache.pig.data.Tuple;publicclassUPPERextendsEvalFunc{publicStringexec(Tupleinput)throwsIOException{if(input==null||input.size()==0)returnnull;try{Stringstr=(String)input.g