2016-11-07 80 views
-1

我有两种PHP格式的输入字段。这些字段需要保存到数组中,并且输出应该在括号中包含它旁边每个单词的单词长度。还需要评估哪个输入字段1或2具有最长的单词以及每个字段中有多少单词。它在执行过程中显示错误。语法错误,文件 Screenshot 1Screenshot 2将字符串分解为数组PHP

<!DOCTYPE html "> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
      <title> Two Input field compare PHP </title> 
    </head> 
    <body> 
     <?php 

     echo "<br/>"; 

     if (isset($_POST['submit'])) { 
      $input1 = $_POST['input1']; 
      $input2 = $_POST['input2']; 
      //example $input1 = "Learning the PHP"; 
      //example $input2 = "Counting words and showing(7) like this word<< "; 

      if (empty($input1)) { 
       echo "You need to enter both fields !"; 
      } 
      if (empty($input2)) { 
       echo "You need to enter both fields !"; 
      } 

       echo $input1; 
       echo $input2; 


      $inputarr1 = explode(" ", $input1); 
      $inputarr2 = explode(" ", $input2); 



      $longestlenghtarr1 = $longestlenghtarr2 = 0; 

      $arraylength1 = sizeof($inputarr1); 
      $arraylength2 = sizeof($inputarr2); 



      $longest1 = $longest2 = 0; 

      for ($x = 0; $x < arraylength1; $x++) { 

      echo $inputarr1[$x] . " &lt; " . strlen($inputarr1[$x]) . " &gt; "; 
       if (strlen($inputarr1[$x]) > $longest1) { 
        $longest1 = strlen($inputarr1[$x]); 
       } 
      } 

      for ($y = 0; $y < arraylength2; $y++) { 
       echo $inputarr2[$y] . " &lt; " . strlen($inputarr2[$y]) . " &gt; "; 

       if (strlen($inputarr2[$y]) > $longest2) { 
        $longest2 = strlen($inputarr2[$y]); 
       } 
      } 

       if ($longest1 > $longest2) { 
       echo "<br/> The field 1 input has longest word of lenght " . $longest1." characters !"; 
       } 

       if ($longest2 > $longest1) { 
         echo "<br/> The field 2 input has longest word of lenght " .$longest2." characters !"; 
        } 

        if ($arraylength1 > $arraylength2) { 
        echo "<br/> The field 1 input has more words";} 
         if ($arraylength2 > $arraylength1) { 
          echo "<br/> The field 2 input has more words"; 
         } 

         echo "<br/>"; 

       ?> 

      <div> 
          <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> 

       Input Text 1 <br/> 
       <input type="text" name="input1" /><br/> 
       Input Text 2 <br/> 
       <input type="text" name="input2" /><br/> 
       <input type="submit" name="submit" value="Submit" /> 
      </form> 

     </div> 

</body></html> 
+0

你能进一步帮助! –

+2

你真的只需要调试它。通常,当你遇到错误时,你要做的第一件事就是启用错误报告。但是出于某种原因,你已经不再使用它了:'error_reporting(0);'。 “它在执行过程中显示错误。”什么错误? *您需要输入两个字段!*? – HPierce

+0

我修改了代码。你能再次测试吗? –

回答

1

可能是错误的变量名意外结束 - 这应该引起类似Undefined index 'input1'错误。

尝试更换$POST_$_POST所以你应该有

$input1 = $_POST['input1']; 
$input2 = $_POST['input2']; 
+0

仍然没有输出。需要验证字符串爆炸并计数 –

+0

首先,作为@HPierce sais尝试用'error_reporting(E_ALL)'替换'error_reporting(0);'或者只是注释该行以查看代码中的错误。你的'explode'函数的第一个参数必须是char(你有空字符串),所以在问号之间放一个空格。并且比'$ inputarr1 = explode ...'要多,但后来你会遍历'$ inputarray1'(不同的数组)。 – LiTe

+0

看看是这个区别https://www.diffchecker.com/CIkvwkQF – LiTe