回答編集履歴
2
修正
answer
CHANGED
@@ -93,7 +93,5 @@
|
|
93
93
|
return $html;
|
94
94
|
}
|
95
95
|
|
96
|
-
$total = ceil($total_count / $count); //最大ページ数
|
97
|
-
|
98
|
-
echo paging($page, $
|
96
|
+
echo paging($page, $total_count);
|
99
97
|
```
|
1
追記
answer
CHANGED
@@ -4,4 +4,96 @@
|
|
4
4
|
$count='50';
|
5
5
|
$large_area='〇〇';
|
6
6
|
$start =1+($page-1)*10; // ← $page に値が入ってこないからでしょう
|
7
|
+
```
|
8
|
+
|
9
|
+
---
|
10
|
+
|
11
|
+
できるだけ元の形を生かそうとしても、無理でした。
|
12
|
+
|
13
|
+
```html
|
14
|
+
<?php
|
15
|
+
|
16
|
+
ini_set('display_errors', 1);
|
17
|
+
error_reporting(E_ALL);
|
18
|
+
|
19
|
+
$page = filter_input(INPUT_GET, 'page');
|
20
|
+
$budget = filter_input(INPUT_GET, 'budget');
|
21
|
+
$keyword = 'うどん';
|
22
|
+
|
23
|
+
$key = 'APIKEY';
|
24
|
+
$count = 10;
|
25
|
+
|
26
|
+
$large_area = '';
|
27
|
+
$start = 1 + ($page - 1) * $count;
|
28
|
+
|
29
|
+
$format = 'xml';
|
30
|
+
|
31
|
+
$query = http_build_query(
|
32
|
+
array(
|
33
|
+
'key' => $key
|
34
|
+
, 'count' => $count
|
35
|
+
, 'large_area' => $large_area
|
36
|
+
, 'start' => $start
|
37
|
+
, 'budget' => $budget
|
38
|
+
, 'keyword' => $keyword
|
39
|
+
, 'format' => $format
|
40
|
+
)
|
41
|
+
);
|
42
|
+
|
43
|
+
$url = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/';
|
44
|
+
$url .= sprintf('?%s', $query);
|
45
|
+
|
46
|
+
$xml = simplexml_load_file($url);
|
47
|
+
$total_count = $xml->results_available;
|
48
|
+
|
49
|
+
// 取得結果確認
|
50
|
+
var_dump($xml);
|
51
|
+
|
52
|
+
function paging($page, $total)
|
53
|
+
{
|
54
|
+
$delta = 3;
|
55
|
+
if ($total < 1) {
|
56
|
+
return;
|
57
|
+
}
|
58
|
+
$query = (is_array(filter_input_array(INPUT_GET))) ?
|
59
|
+
filter_input_array(INPUT_GET) : [];
|
60
|
+
if (isset($query['page'])) {
|
61
|
+
unset($query['page']);
|
62
|
+
}
|
63
|
+
$querystring = http_build_query($query);
|
64
|
+
$limit = 10;
|
65
|
+
$placeholder = "<span%s><a href=\"?page=%d&%s\">%s</a></span> ";
|
66
|
+
|
67
|
+
// 最大ページ数
|
68
|
+
$maxPage = ceil($total / $limit);
|
69
|
+
|
70
|
+
$min = max([$page - $delta, 1]);
|
71
|
+
$max = min([$page + $delta, $maxPage - 1]);
|
72
|
+
|
73
|
+
$html = '';
|
74
|
+
if ($page > 1) {
|
75
|
+
$html .= sprintf($placeholder, '', 1, $querystring, '«');
|
76
|
+
$html .= sprintf($placeholder, '', $page, $querystring, '前へ');
|
77
|
+
}
|
78
|
+
for ($i = $max - 6; $i < $min + 7; $i++) {
|
79
|
+
if ($i > -1 && $i < $maxPage) {
|
80
|
+
$html .= sprintf($placeholder
|
81
|
+
, ($i == $page - 1) ? ' class = "active"' : ''
|
82
|
+
, $i + 1
|
83
|
+
, $querystring
|
84
|
+
, $i + 1
|
85
|
+
);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
if ($page < $maxPage) {
|
89
|
+
$html .= sprintf($placeholder, '', $page + 1, $querystring, '次へ');
|
90
|
+
$html .= sprintf($placeholder, '', $maxPage, $querystring, '»
|
91
|
+
');
|
92
|
+
}
|
93
|
+
return $html;
|
94
|
+
}
|
95
|
+
|
96
|
+
$total = ceil($total_count / $count); //最大ページ数
|
97
|
+
|
98
|
+
echo paging($page, $total);
|
7
99
|
```
|