定義済み関数
すみません。以下のコードで、
フォームから入力された # で区切られた文字列
例えば、
#焼肉#すき焼き#しゃぶしゃぶ
を、#で分け表示しています。
以下のコードでは成功しいていますが、長いので定義済み関数とfor文で同じことをしたいです。(厳密には出力結果が少し違いますが・・・)
よろしくお願いします。
現在のコード
$tag=explode("#",$row[2],6);
$files=str_replace("タグ1",$tag[1],$files);
$files=str_replace("タグ2",$tag[2],$files);
$files=str_replace("タグ3",$tag[3],$files);
$files=str_replace("タグ4",$tag[4],$files);
$files=str_replace("タグ5",$tag[5],$files);
$files=str_replace("タグ",'<ul>'.'<li>'.'<a href="../article.php?tag='.$tag[1].'">'.$tag[1].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[2].'">'.$tag[2].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[3].'">'.$tag[3].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[4].'">'.$tag[4].'</a>'.'</li>'. ' <li> '.'<a href="../article.php?tag='.$tag[5].'">'.$tag[5].'</a>'.'</li>'.'</ul>',$files);
作りたいコード
function tag()
{
$tag=explode("#",$row[2],6);
for( $i=0; $i<count($tag); $i++ ){
echo '<li>'.'<a href="'.$tag[$i].'">'.$tag[$i].'</a>'.'</li>'.;//タグが何個あるかわからないため結合演算子で終わりたいが、
syntax error, unexpected ';' in
のエラーが出てしまう。
}}
$files=str_replace("ページのお題",'<ul>'.'<li>'.'<img src="../'.$row[1].'">'.'</a>'.'</li>'.
'<div class="article-tag">'. ' <li> '.tag()'</li>'.'</div>'.'</li>'. '<li>'.$row[3].'</li>'.'</ul>',$files);//上記の .(定義済み関数での結合演算子を省くと
syntax error, unexpected ''</li>'' (T_CONSTANT_ENCAPSED_STRING) in
のエラーが出てしまう。)
お礼
HTMLのtextタグを見直したところ、value値に「''」を付けるのを 忘れていました。 セキュリティー用語でサニタイジングの基本的なことを 忘れておりました。