回答編集履歴
1
回答を加筆修正
test
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
まず、プログラムの先頭行(<?phpの次の行)に、以下を記述してください。
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
```PHP
|
6
|
+
|
7
|
+
// 全てのエラーを拾う
|
8
|
+
|
9
|
+
error_reporting(E_ALL);
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
// エラーを出力する
|
14
|
+
|
15
|
+
ini_set('display_errors', "On");
|
16
|
+
|
17
|
+
```
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
これで、どこが悪いのかPHPがエラーメッセージを出してくれます。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
1
27
|
75行目のliタグを出力している部分で使われている $namecnt ですが、この中身には「徳川 家康(4)」みたいな文字列がセットされているかと思います。
|
2
28
|
|
3
29
|
|
@@ -29,3 +55,55 @@
|
|
29
55
|
これで、名前とcntを分けることができました。
|
30
56
|
|
31
57
|
あとは表示部分でも、キー名(名前を出したいときは「name」、cntを出したいときは「cnt」)を指定すると表示できます。
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
### 表示部分
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
> foreach($namearray as $namecnt){
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
この次の行に、以下のコードを追加してみてください。
|
70
|
+
|
71
|
+
```PHP
|
72
|
+
|
73
|
+
print_r($namecnt);
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
そうすると、以下のような表示が現れると思います。
|
80
|
+
|
81
|
+
> Array ( [name] => 岩鬼正美 [cnt] => 1 )
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
これは$namecntの中身を表示しており、さきほど変更した$line['name']と$line['cnt']の値がそれぞれセットされているのがわかると思います。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
分けて表示したい要望ですので、$namecnt['name']と$namecnt['cnt']を指定してあげれば表示できます。
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
```PHP
|
94
|
+
|
95
|
+
echo "<li><a href=\"siteurl/meta?key=".$namecnt['name']."\">".$namecnt['name']." <span class'hoge'>".$namecnt['cnt']."</span></a></li>\n";
|
96
|
+
|
97
|
+
```
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
### preg_replace()について
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
> $name = preg_replace('/(\d*)/','',$namecnt );
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
これは元々$namecnt に「岩鬼正美(1)」とセットされていた文字列から、カッコ()と数字を削除(空文字に置換)する処理ですので、今回の変更によって不要となります。
|