这个strlen参数可以用于验证吗?

时间:2015-11-11 06:51:34

标签: php

我是PHP的新手。我的问题是我需要输入来验证至少20个字符输入并返回最后九个。任何人都可以告诉我,我的论点是否接近工作,如果不是我需要做什么?

if (!empty($_POST['usen']) ||
    strlen($usen['usen'] >= 20 )) {  
    $switch = substr($usen, -9, 9); // returns last nine of sentence
    $output_form=false;
} else {
     $error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>"; 
     $output_form=true; 
}

4 个答案:

答案 0 :(得分:0)

要获取$ usen [&#39; usen&#39;]的最后9个字符,请使用

$switch = substr($usen, -9);

答案 1 :(得分:0)

if (!empty($_POST['usen']) ||
   strlen($_POST['usen']) >= 20 ) {  // changed condition 
 $switch = substr($usen, -9, 9); // returns last nine of sentence
 $output_form=false;

} else {
 $error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>"; 
 $output_form=true; 
}

if-condition在第二部分有两个问题

  1. 您使用的是$usen['usen'],但我认为它应该是$_POST['usen'](另请参阅@Ed Cottrell的评论)
  2. 来自方法调用strlen的关闭bracker必须在param
  3. 之后

答案 2 :(得分:0)

您有几个语法问题和变量命名问题。您的代码应该

if (!empty($_POST['usen']) && // || should be &&; the || doesn't make sense here
    strlen($_POST['usen']) >= 20 ) { // You had $usen['usen'] and an incorrectly placed ) 
    $switch = substr($_POST['usen'], -9); // again, this should be $_POST['usen'], not $usen. The third parameter is unnecessary here.
    $output_form = false;
} else {
    $error_text .= "<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>"; 
    $output_form = true; 
}

关键点:

  • 你正在使用错误的布尔运算符。 !empty($x) || strlen($x) >= 20没有意义。它应该是&&,而不是||。如果$_POST['usen']的值为非空值,则!empty($_POST['usen'])true。但是因为您的||条件中有if,这意味着if块始终针对非空值执行,而不是else块。如果值为非空至少为20个字符,则只需执行if
  • 您的变量为$_POST['usen'],但您的代码引用了$usen['usen']$usen,这些代码不正确。
  • 您有strlen($usen['usen'] >= 20),您应该strlen($_POST['usen']) >= 20。变量名称和)展示位置都不正确。

答案 3 :(得分:0)

if (!empty($_POST['usen']) &&
    strlen($_POST['usen'] )>= 20 ) {  //condition change
    $switch = substr($_POST['usen'] ,-9); // returns last nine of sentence
    $output_form=false;
} else {
     $error_text .="<p><span class='error'>*<strong>A Sentence of 20 char is required .</strong></span></p>"; 
     $output_form=true; 
}

要获得最后9个字符,可以使用substr(string,-9);