首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >警告: preg_match():内部pcre_fullinfo()

警告: preg_match():内部pcre_fullinfo()
EN

Stack Overflow用户
提问于 2012-01-14 09:21:49
回答 1查看 2.8K关注 0票数 17

我有以下可用的代码:

代码语言:javascript
复制
$test = '123456';

$int = preg_match('/^\d+$/', $test, $matches);

print_r(array($int, $matches));

然而,当我使用execute it on codepad时,我得到了错误:

警告: preg_match():第5行出现内部pcre_fullinfo()错误

但是代码是在我自己的机器上运行的(代码应该没问题)。

我需要在将来分发我的代码,所以如果它会根据一些配置而崩溃,那将是很糟糕的。那么,codepad中断的原因是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-14 09:24:16

通过codepad执行的代码在一个非常受限的环境中运行:

代码的执行由基于geordi的主管处理。策略是在ptrace下运行所有东西,许多系统调用不被允许或忽略。编译器和最终可执行文件都是在chroot监狱中执行的,具有严格的资源限制。supervisor是用Haskell编写的。

虽然没什么会破坏正则表达式引擎,但很可能pcre库在内部使用了被codepad环境阻塞的东西。没有生产系统使用如此严格的限制,所以在应用程序中使用该代码应该是安全的。

错误代码代表"PCRE_ERROR_BADOPTION -无效内容的值“。然而,PHP源中出现错误的代码是rc = pcre_fullinfo(pce->re, extra, PCRE_INFO_CAPTURECOUNT, &num_subpats);,它使用一个常量来表示什么。所以很明显,这意味着pcre库在代码头上被破坏了。

如果您希望完全安全,您可以使用libpcre编写一个小的C程序,以便在同一正则表达式上调用该函数。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8859363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档