if (preg_match('^'.preg_quote($this->config_document_root), $filename)) {
$AbsoluteFilename = $filename;
$this->DebugMessage('ResolveFilenameToAbsolute() NOT prepending $this->config_document_root ('.$this->config_document_root.') to $filename ('.$filename.') resulting in ($AbsoluteFilename = "'.$AbsoluteFilename.'")', __FILE__, __LINE__);
} else {
$AbsoluteFilename = $this->config_document_root.$filename;
$this->DebugMessage('ResolveFilenameToAbsolute() prepending $this->config_document_root ('.$this->config_document_root.') to $filename ('.$filename.') resulting in ($AbsoluteFilename = "'.$AbsoluteFilename.'")', __FILE__, __LINE__);
}
}
此代码已经解决了第一个答案的说明,但我该如何修复此代码?如何在此代码中将de eregi更改为preg_match?
if (!$this->config_allow_src_above_docroot && !preg_match('^'.preg_quote(str_replace(DIRECTORY_SEPARATOR, '/', realpath($this->config_document_root))), $AbsoluteFilename)) {
解决了,感谢所有的答案!
@ user461672我已经用第二个代码提取的例子更新了答案。另外,在Stackoverflow上发布代码时,您应该选择它并使用'101010'按钮(或按Ctrl + K)将其格式化为代码。 – mikej 2010-09-29 12:20:33