1

次のようなphp出力があります。

data00,data01,data02,data03, , , and so on
data10,data11,data12,data13, , , and so on
data20,data21,data22,data23, , , and so on
(and so on in rows)

そして、このデータを生成するこのphpコード。

<?php
$searchthis = $_GET["sea1"];
$matches = array();

$handle = @fopen("sources.csv", "r");
if ($handle)
{
    while (!feof($handle))
    {
        $buffer = fgets($handle);
        if(strpos($buffer, $searchthis) !== FALSE)
            $matches[] = $buffer;
    }
    fclose($handle);
}

//show results:
print_r($matches);

今、ページのどこかにある特定の列に特定の行を表示したいと思います。

<?php echo $matches[0]; ?>

必要な特定のデータではなく、行全体が表示されます。私はこのようなものを作ることができます:

$output = echo $matches[0]

しかしその後?$output をどのように使用すればよいですか?? たとえば、行全体の代わりに 2 番目の単語が必要な場合などです。

さて、答えの後、ファイルを次のように更新します。plsは、私がどこか間違っているかどうかを確認してください。

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
    <title>my page</title>
  </head>
  <body>
    <div style="text-align: center;">
      <title>My Page</title>
      <form name="myform" action="systemmonitor.php" method="GET">
        <div align="center">My page<br>
          <br>
          <input name="sea1" placeholder="customtext" size="25" type="text"> <br>
          <br>
          <input name="sea2" placeholder="customtext" size="25" type="text"> <br>
          <br>
          <input name="sea" value="submit" type="submit"><br>
          <br>
<?php
$searchthis = $_GET["sea1"];
$matches = array();

$handle = @fopen("systemlines.csv", "r");
if ($handle)
{
    while (($buffer = fgetcsv($handle)) !== FALSE)
    {
        $check = preg_grep("/$searchthis/",$buffer);
        if(!empty($check)){
            $matches[] = $buffer;
        }
    }
    fclose($handle);
}

//show results:
print_r($matches);?>
  </body>
</html>
<?php echo $matches[0][4]; ?>
4

1 に答える 1

1

fgetcsv代わりに使用する必要がありますfgets

http://php.net/manual/en/function.fgetcsv.php

UPD

<?php
$searchthis = $_GET["sea1"];
$matches = array();

$handle = @fopen("sources.csv", "r");
if ($handle)
{
    while (($buffer = fgetcsv($handle)) !== FALSE)
    {
        $check = preg_grep("/$searchthis/",$buffer);
        if(!empty($check)){
            $matches[] = $buffer;
        }
    }
    fclose($handle);
}

//show results:
print_r($matches);
于 2013-08-10T20:47:28.623 に答える