【问题标题】:comparing values from a list and a form php比较列表和表单中的值 php
【发布时间】:2014-03-27 21:18:06
【问题描述】:

我有一个从文本文件生成的 php 列表。 而且我在按最大值过滤信息时遇到了一些问题。 这是我的代码:

<?php 
            $searchReq = $_POST['searchMaximum'];
            $intValForm = filter_var($searchReq, FILTER_VALIDATE_INT);

            $f = fopen("info.txt", "r");
            while (($line = fgets($f)) !== FALSE) {
                if (strstr($line, $searchReq)) {
                    list( $hPostcode, $hPrice, $hImage, $hViews ) = explode( ",", $line );
                    $intValFile = filter_var($hPrice, FILTER_VALIDATE_INT);
                    if($intValFile <= $intValForm){    
                        print "<hr/>";
                        print 'Postcode:' . $hPostcode . '<br />';
                        print 'Price: £' .$hPrice . ",000" . '<br />';
                        print "<img src=\"$hImage\" />";
                        print 'Views:' . $hViews . '<br />';
                        print '<br/>';
                    }   
                }

            }
           fclose($f); 
        ?>

因此它将每行中的四个字段分开,并从每个字段中生成一个变量。 我的问题是如何比较我从搜索框中获得的值和仅显示相应变量在搜索的变量下方的行(打印字段)的页面。 有人可以帮我吗? 我真的很感激:)

【问题讨论】:

    标签: php forms max text-files filtering


    【解决方案1】:

    如果过滤器失败,函数 filter_var 返回 false。因此,您应该在比较值之前检查过滤结果。第二个问题是函数 strstr,它用于比较字符串,所以如果你想找到价格为 9 的行,并且你从 post 值 10 中得到 - 函数 strstr 返回 false。你可以试试这个:

    $searchReq = $_POST['searchMaximum'];
    $intValForm = filter_var($searchReq, FILTER_VALIDATE_INT);
    
    if ($intValForm === false) {
      die('search maximum is not a number');
    }
    
    $f = fopen("info.txt", "r");
    while (($line = fgets($f)) !== FALSE) {
        list( $hPostcode, $hPrice, $hImage, $hViews ) = explode( ",", $line );
        $intValFile = filter_var($hPrice, FILTER_VALIDATE_INT);
        //omit not valid rows
        if ($intValFile === false) {
          continue;
        }
        if($intValFile <= $intValForm){    
          print "<hr/>";
          print 'Postcode:' . $hPostcode . '<br />';
          print 'Price: £' .$hPrice . ",000" . '<br />';
          print "<img src=\"$hImage\" />";
          print 'Views:' . $hViews . '<br />';
          print '<br/>';
        }   
    }
    fclose($f);
    

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多