草庐IT

If-None-Match

全部标签

php - 破折号和下划线的 preg_match 的奇怪行为

我有以下两个表达式。两者几乎相同,首先我检查以3个破折号结尾的字符串,然后检查以3个下划线结尾的字符串$str="this-is_normal-test---";$str=preg_match("/[a-zA-z0-9]+(-+)$/",$str,$matches);print_r($matches);$str="this-is_normal-test___";$str=preg_match("/[a-zA-z0-9]+(_+)$/",$str,$matches);print_r($matches);这是输出:Array([0]=>test---[1]=>---)Array([0]=>

php - 使用 preg_match 检查字母数字点破折号和下划线的正则表达式是什么?

我正在检查用户输入的用户名我正在尝试使用preg_match()在PHP中验证用户名,但我似乎无法让它按照我想要的方式工作。我需要preg_match()来:只接受字母、数字和。-_即只有字母数字点破折号和下划线,我尝试了htaccess中的正则表达式,就像这样([A-Za-z0-9.-_]+)就像这样,但它似乎不起作用,它为简单的alpha用户名提供false。$text='username';if(preg_match('/^[A-Za-z0-9.-_]$/',$text)){echo'true';}else{echo'false';}我怎样才能让它发挥作用?我打算像这样在函数中使

php preg_match 只匹配数字、字母和点

我已经搜索了2个小时了,但还是没找到。我需要评估帐户名称的输入。这只能包含数字(0-9)、字母(a-z和A-Z)和点(.).其他一切都是被禁止的。所以,没有下划线(_),加上(+)等等。有效的帐户应该是这样的,例如:john.greenluci.mayer89admin我尝试了很多preg_match/regex示例,但无法正常工作。每当我执行echopreg_match(...)时,我都会将1设为true。$accountname="+_#luke123*";echopreg_match("/[a-z0-9.]/i",$accountname);//-->givesback1astr

带有克罗地亚字符的 PHP preg_match

我是正则表达式的新手,但在StackOverflow上进行了一些搜索,我设法得到了我想要的东西(如果2个以上的单词用逗号分隔,则返回true,如果不是,则返回false或这个词以逗号结尾,但后面没有任何内容),除了我对克罗地亚语字符(č,ć,ž,đ,š大写和小写)有疑问。我当前的preg_match看起来像if(preg_match('/^(([a-zA-Z0-9]+\\s*,\\s*)+(\\s*)([a-zA-Z0-9]+))$/',$data)){//dostuff}但是这种方法的问题是如果它有Č,ć,ž...并且我不会返回true知道这是因为[a-zA-Z]没有“寻找”这个字符

php preg_match_all 返回数组数组

我想替换一些模板标签:$tags='{name}text{first}';preg_match_all('~\{(\w+)\}~',$tags,$matches);var_dump($matches);输出是:array(2){[0]=>array(2){[0]=>string(6)"{name}"[1]=>string(7)"{first}"}[1]=>array(2){[0]=>string(4)"name"[1]=>string(5)"first"}}为什么里面有2个数组?如何实现仅第二个? 最佳答案 那是因为您的正则表达式可

php - 三元 foreach 嵌套在 if/else 中

我想知道如何在三元或替代语法中使用三元重写以下内容。$tags=get_the_tags();if(!empty($tags)){foreach($tagsas$tag){echo$tag->name.',';}}else{echo'foobar';} 最佳答案 没有三元foreach这样的东西。但是,您可以像这样将条件语句设为三元echoempty($tags)?'foobar':implode(',',array_map(create_function('$o','return$o->name;'),$tags));;)输出fo

基于嵌套 if 语句的 PHP 邮件重定向 header 位置

您好,我正在为客户设计一个网站。我设计了这个表格VolvoSaabAudi它有3种选择,1stVolvo,2ndSaab,3rdAudi现在我想根据用户选择将表单提交重定向到不同的网站例如如果用户选择Volvo,则为facebook.com;如果选择Saab,则为Twiiter.com。我为相同的代码设计了以下PHP代码';$output.='NewsletterEmail';$output.='Name:'.$name.'';$output.='Phone:'.$phone.'';$output.='Email:'.$email.'';$output.='';/*Signature*

php - PHP IF 中的比较顺序

我很确定这之间没有区别if($value===true)还有这个if(true===$value)对我来说,这似乎总是令人困惑。我曾经认为这是一种“新开发者糟糕的非常规风格”。此外,我的老板告诉我永远不要做这样的事情。但今天我正在浏览Slim的源代码,由创建PHP:TheRightWay的人编写,并看到this(第341行)。if(true===$value){$c['settings']=array_merge_recursive($c['settings'],$name);}我敢肯定,如果这被认为是一种不好的做法,像JoshLockhart这样的人不会做这样的事情。那么这个命令是怎

php - 正则表达式 If Else

我有一个字符串:/foo/{bar}/{baz?}现在我想提取{...}中的所有单词。但是在带有“?”的单词上我不仅要选择{...},还要选择“{”之前的“/”到目前为止我得到了这个:$string='/foo/{bar}/{baz?}';preg_match_all('~{(\w+)[?]?}~',$string,$matches);print_r($matches);结果:Array([0]=>Array([0]=>{bar}[1]=>{baz?})[1]=>Array([0]=>bar[1]=>baz))但应该是:Array([0]=>Array([0]=>{bar}[1]=>/

php - preg_match 模式在 php v 5 中不起作用

我使用的是PHP5.4.45版。我在php版本7中测试了这段代码并且工作正常但在版本5.4.45中不起作用$string='9301234567';if(preg_match('/^\9\d{9}/',$string)){$string='0+1'.$string;return$string;}在v7中返回:0+19301234567但在v5.4.45中返回(preg_match返回false)9301234567我如何在phpv5.4.45中使用preg_match('/^\9\d{9}/',$string)?谢谢 最佳答案 简介