草庐IT

PREG_REPLACE_EVAL

全部标签

php - preg_match_all() 如何处理字符串?

我仍然在学习很多关于PHP的知识,字符串更改是我感兴趣的东西。我之前使用过preg_match来验证电子邮件地址或只是搜索查询。我刚从这篇文章中来What'swronginmyregularexpression?并且很好奇为什么preg_match_all函数会产生2个字符串,其中1个带有一些字符被剥离,另一个带有所需的输出。根据我对函数的理解,它使用RegEx逐个字符地遍历字符串,以评估如何处理它。这个正则表达式的结构是否可以绕过第一个数组条目并只产生所需的结果?这样你就不必去其他线程了$str='text^name1^Jony~text^secondname1^Smith~text

java - 替换字符串中的多个单词 ln java like php str_replace

我需要在java中找到一种类似的巧妙方法来执行多字符串替换,就像您在php中使用str_replace执行此操作一样。我想获取一个字符串,然后返回一个字符串,其中数字1到10替换为这些数字的单词。“我赢了10场比赛中的7场,获得了30美元。”=>“我赢了十场比赛中的七场比赛并获得了30美元。”在php中,你可以这样做:functionreplaceNumbersWithWords($phrase){$numbers=array("1","2","3","4","5","6","7","8","9","10");$words=array("one","two","three","four

反斜杠的 PHP str_replace

我需要在后面的字符串中用''替换\。$x="FBU4061\0258";当我执行$x=str_replace('\\','',$x);它返回FBU40618,是否有任何解决方法来获取FBU40610258。注意:我需要在双引号内执行此操作。在单引号内,它会毫无问题地返回所需的值。 最佳答案 这里可能让您感到困惑的是,双引号字符串对这个字符串的解释与单引号字符串截然不同。PHP中的字符串"FBU4061\0258"会将字符串的\02部分解释为STX(或文本开头)字符(即ASCII字符02)。只需尝试在PHP中运行代码var_dump(

php - 使用 eval() 和 include() 的命名空间无法按预期工作

我只是在胡闹,我遇到了这个:不起作用[29-Apr-201614:12:42America/New_York]PHPFatalerror:Cannotredeclarea_func()(previouslydeclaredindata:text/plain,不起作用[29-Apr-201614:19:21America/New_York]PHPFatalerror:Cannotredeclarea_func()(previouslydeclaredinC:\path\test.php(3):eval()'dcode:1)inC:\path\test.php(7):eval()'dcod

php - 我应该使用 eval() 还是 call_user_func()?

我正在开发一个php项目,我想运行从MySQL数据库中获取的代码。不可能注入(inject)不安全的代码,所以我唯一担心的就是性能。我应该使用eval()以便直接运行代码,还是解析它以便call_user_func()运行它?例如,如果我获取的代码是“myfunc(1,2,3);anotherFunc(3,2,1);”我可以直接对它进行eval()来运行代码。但是对于call_user_func(),我必须解析字符串才能运行它。那么在这种情况下使用哪个函数更好呢? 最佳答案 将PHP存储在数据库中本身就是一种糟糕的设计味道;即使在这

php - 警告 : preg_match() [function. preg-match]:编译失败:在偏移处没有可重复的内容

我正在尝试将preg_match检查从url检查更改为用户名检查,这是可接受的最小/最大2-16chrs、破折号、空格和连字符。我收到这个错误Warning:preg_match()[function.preg-match]:Compilationfailed:nothingtorepeatatoffset14if(empty($string)||preg_match("#^([\w-]{2,16}*(?:.[\w-]{2,16}*)+):?(d+)?/?#i",$string))寻找URL的旧代码if(empty($string)||preg_match("#^(http|https

php - 除了使用 php 的 eval 之外,还有其他方法可以调用此函数吗?

所以在数据库字段中有一个php函数。这是它的样子:'$put_fname_fn=function($filename){return$filename.'.Z';};'我是这样执行的:$code=fetchFromDatabase();//Getthefunctionstringeval($code);$put_fname_fn('MYFILE.TXT');//ConvertittoMYFILE.TXT.Z有没有更优雅的调用用户函数的方式?我尽量避免使用eval,但我没有其他方法可以做到这一点。 最佳答案 没有其他方法可以评估PHP

PHP函数array_replace(),为什么参数是按引用传递的?

PHP.net上array_replace()的函数签名表明数组将通过引用传递。以这种方式而不是按值进行操作的原因/好处是什么,因为要获得预期的结果,您必须将完成的数组返回给变量。需要说明的是,我能够在手册中重现结果,所以这不是关于如何使用此功能的问题。这是来自php.net的函数签名和示例。来源:http://ca3.php.net/manual/en/function.array-replace.php函数签名:arrayarray_replace(array&$array,array&$array1[,array&$...])示例代码:$base=array("orange","

php - preg_match : ensure the start and the end contains something

我想要一个正则表达式来确保字符串的开头包含“http://”和“/”以及结尾。这是我想出的一个更长的版本,if(!preg_match("/(^http:\/\//",$site_http)){$error=true;echo'';}elseif(!preg_match("/\/$/",$site_http)){$error=true;echo'';}但我认为这两个表达式可以像下面这样放在一起,但它行不通,if(!preg_match("/(^http:\/\/)&(\/$)/",$site_http)){$error=true;echo'';}我尝试组合的多个表达式一定是错误的!有什

php - 哪个功能更快? substr() 或 str_replace()?

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭11年前。我有一个脚本,我可以在其中使用substr()或str_replace()。使用substr()我只需要切断最后一个字符,使用str_replace我需要用任何东西替换!。哪个会更快?我猜substr()?