草庐IT

PREG_REPLACE_EVAL

全部标签

php - 如何在 PHP 中禁用 'e' PREG_REPLACE_EVAL 修饰符?

我想知道如何在PHP的正则表达式系统中禁用eval修饰符,例如。preg_replace('/.*/e',$code,'.').这是一个潜在的漏洞利用,如果有人设法将狡猾的代码放到服务器上,可以用来代替eval。我最近遇到了一个问题,来自woothemes的wordpress主题有一个安全漏洞,允许黑客上传后门服务器管理类型脚本。我的php.ini中有这个:disable_functions=eval这阻止了大部分可能造成的损害,但我想知道我是否可以做类似的事情来防止除call_user_func_array()之外的所有形式的“评估”东西? 最佳答案

php - 使用 preg_match 检测字符串中的波斯语 (farsi) 字符

我正在尝试从服务器端验证表单数据。我感兴趣的是用户只需用波斯字符填写表格。我正在使用这段代码:$name=trim($_POST['name']);$name=mysql_real_escape_string($name);if(preg_match('/^[\u0600-\u06FF]+$/',str_replace("\\\\","",$name))){$err.="PleaseusePersiancharacters!";}但它不起作用!这是一个警告:Warning:preg_match()[function.preg-match]:Compilationfailed:PCREd

php - 使用 preg_match 检测 url?没有 http ://in the string

我想知道如何根据preg_match检查分解成数组的字符串,看它是否以www开头。我已经有一个检查http://www的.functionisValidURL($url){returnpreg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i',$url);}$stringToArray=explode("",$_POST['text']);foreach($stringToArrayas$key=>$val){$urlvalid=isValidURL($val);if($urlvalid){$_SESSIO

php - preg_match() : Compilation failed: character value in\x{} or\o{} is too large at offset 27 on line number 25

我正在编写一些PHP代码。在此代码中,我在for循环中运行for循环以遍历数组,然后遍历数组中当前字符串中的字符。然后我想对当前字符串执行preg_match()以查看它是否匹配相当长的RegEx。preg_match('/[\f\n\r\t\v\x{00a0}\x{1680}\x{180e}\x{2000-}\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}\x{feff}]/',$input[$i][$j])但我不断收到以下错误:WARNINGpreg_match():Compilationfailed:charactervaluein

php - 在 PHP 的 preg_replace 中使用 $ 变量

嗯……如何在调用preg_replace时使用变量?这没有用:foreach($numarrayas$num=>$text){$patterns[]='/(.*?)\+$num(.*?)/';$replacements[]='$1$2';}是的,$num前面有一个加号。是的,我想要“tagthe$numas”。 最佳答案 您的替换模式看起来不错,但由于您在匹配模式中使用了单引号,您的$num变量将不会插入其中。相反,尝试$patterns[]='/(.*?)\+'.$num.'(.*?)/';$replacements[]='$1$

php - 如何在 PHP 中使用 str_replace() 替换 "\"?

我想从我网站上的字符串中删除所有反斜杠。我不想使用strip_slashes(),因为我想保留正斜杠。这是我正在尝试的代码:echostr_replace("\","","it\'sTuesday!");我想在任何给定的字符串中找到反斜杠并将其删除。但是,此代码无法正常工作。错误:syntaxerror,unexpectedT_CONSTANT_ENCAPSED_STRING我做错了什么? 最佳答案 反斜杠实际上是转义字符串中的结束引号。尝试echostr_replace("\\","","it\'sTuesday!");

Java中的Replace和ReplaceAll的区别

    replace和replaceAll是都是String类中提供的两种用于字符/字符串替换的方法,从字面意思理解,replace表示替换单个匹配项,而replaceAll表示替换所有匹配项;实际上并不是这样子的,replace和replaceAll都是替换所有匹配项,replace是非正则模式替换,replaceAll是正则模式替换。    String类中一共提供了四种替换字符/字符串相关的方法,分别是replace的两个重载方法、replaceAll方法和replaceFirst方法replace(字符):全部匹配的都替换;参数为字符(char)类型;不调用Pattern和Match

android - 解决 list 合并失败错误 - 工具 :replace

Android支持库版本25.3.1和26.0.0-alpha1上的冲突导致在执行Gradle同步时出现list合并失败错误。我们如何使用带有tools:replace属性的标签,因为AndroidStudio/gradle建议修复此错误?(即AndroidManifest.xml中强制使用support:design:25.3.1而不是包含的库正在使用的26.0.0-alpha1的确切语法是什么)这是Gradle产生的错误:Error:Executionfailedfortask':app:processDebugManifest'.>Manifestmergerfailed:Att

android - FragmentTransaction.replace 仅替换容器中的第一个 Fragment

我在一个事务中添加了一个容器中的两个fragment(比如A和B)。我尝试用C替换它们。根据文档,replace应该从指定容器中删除所有fragment,然后添加新fragment。相反,它仅替换第一个。所以我最终得到了B和Cfragment。这让我很困惑。是错误还是什么?我已经知道将多个fragment添加到单个容器被认为是不好的做法。但我还是很好奇。更新:之前发现:http://code.google.com/p/android/issues/detail?id=28452 最佳答案 我猜你是这样的:Fragmentfragme

android - list 合并工具 :replace failure

我正在使用一个使用自己的android:theme的库,因此我在构建时收到以下错误:错误:(55,9)任务“:contacit:processDebugManifest”执行失败。Manifestmergerfailed:Attributeapplication@themevalue=(@style/Theme.MainTheme)fromAndroidManifest.xml:55:9isalsopresentatcom.github.florent37:materialviewpager:1.0.3.2:11:18value=(@style/AppTheme)Suggestion: