2

現在、私はこのコードを持っています:

<?php

  if (isset($_GET['id'])) {
    $itemid = $_GET['id'];
    $search = "$itemid";
    $query = ucwords($search);
    $string = file_get_contents('http://example.com/tools/newitemdatabase/items.php');
    if ($itemid == "") {
      echo "Please fill out the form.";
    } else {
      $string = explode('<br>', $string);
      foreach ($string as $row) {
        preg_match('/^(.+)\s=\s(\d+)\s=\s(\D+)\s=\s(\d+)/', trim($row), $matches);
        if (preg_match("/$query/i", "$matches[1]")) {
          echo "<a href='http://example.com/tools/newitemdatabase/info.php?id=$matches[2]'>";
          echo $matches[1];
          echo "</a><br>";
        }
      }
    }
  } else {
    echo "Item does not exist!";
  }
?>

私がやりたいことは、行にあるすべての結果を取得し、echo $matches[1];各ページに 5 行だけでページ間で分割することです。

これは現在何が起こっているかの例です:
http://clubpenguincheatsnow.com/tools/newitemdatabase/search.php?id=blue

そこで私がやりたいのは、各行を 5 行だけの別々のページに分割することです。

例えば:

  • http://example.com/tools/newitemdatabase/search.php?id=blue&page=1
  • http://example.com/tools/newitemdatabase/search.php?id=blue&page=2
4

1 に答える 1

0

次のように、インデックス変数を使用して実行し、5 つの結果のみを出力できます。

<?php
if (isset($_GET['id'])) {
  $itemid = $_GET['id'];
  $search = "$itemid";
  $query = ucwords($search);
  $string = file_get_contents('http://clubpenguincheatsnow.com/tools/newitemdatabase/items.php');
  if ($itemid == "") {
    echo "Please fill out the form.";
  } else {
    $string = explode('<br>', $string);

    // Define how much result are going to show
    $numberToShow = 5;

    // Detect page number (from 1 to infinite)
    if (isset($_GET['page'])) {
      $page = (int) $_GET['page'];
      if ($page < 1) {
        $page = 1;
      }
    } else {
      $page = 1;
    }
    // Calculate start row.
    $startRow = ($page - 1) * $numberToShow;

    // For index use
    $i = 0;
    foreach ($string as $row) {
      preg_match('/^(.+)\s=\s(\d+)\s=\s(\D+)\s=\s(\d+)/', trim($row), $matches);
      if (preg_match("/$query/i", "$matches[1]")) {
        // If the start row is current row
        //   and this current row is not more than number to show after the start row
        if ($startRow >= $i && $i < $startRow + $numberToShow) {
          echo "<a href='http://clubpenguincheatsnow.com/tools/newitemdatabase/info.php?id=$matches[2]'>";
          echo $matches[1];
          echo "</a><br>";
        }
        // Acumulate index
        $i++;
      }
    }
  }
} else {
  echo "Item does not exist!";
}

?>
于 2012-06-09T22:45:47.793 に答える