2012-01-22 10 views
0

アレイをエコーする際に問題があります。アレイをエコーすることができません

$test = 'one two three four'; 
$arr = explode(' ', $test); 

echo '<br />+'.$arr[0].' +(>'.$arr[1].' <'.$arr[2].''; 

$ arr [1]でエコーが止まり、mysqlの特別なクエリに必要です。私は達成するために必要なもの

は次のとおりです。また

('+one +(>two <three) 

、私は[2]〜へARR $から「<」の文字を使用する方法を知っていただきたいと思います。だから、簡単に言えば、私は何を達成するためにトリングだことは次のとおりです。

('+one +(>two <three <four ... <infinite) 

答えて

7

それはタグの開始のためだけミス<文字は、ブラウザをエコー停止し、それに応じて動作しません。

ディスプレイにを表示する場合は、最初にhtmlspecialcharsと呼ぶ必要があります。それ以外の場合(例えば、照会の場合)、特別な処置は必要ない。あなたは、D」

$test = 'one two three four five'; 
$arr = explode(' ', $test); 

$out = '+'.$arr[0].' +(>'.$arr[1].' <'.implode(' <', array_slice($arr, 2)).')'; 
echo htmlspecialchars($out); // only for echoing! 
+0

ありがとうございました。あなたはちょうど私の問題を修正しました。array_sliceのチップにも感謝します。私はあなたの答えを受け入れた。再びありがとう。 –

0

のようなものが&lt;&gt;<>を交換してください:あなたの最後の質問については

2

あなたのコードの生出力:

<br />+one +(>two <three

ブラウザは<threeはタグだと思います。 htmlの特殊文字を使用します。

0
$test = 'one two three four five six ...'; 
$arr = explode(' ', $test); 
$total = count($arr); 

if ($total < 3) { 
    echo 'Less than three elements found.'; 
    exit; 
} 

$tmp = '(+' . $arr[0] . ' +(>' $arr[1]; 

for ($i = 2; $i < $total; ++$i) { 
    $tmp .= ' <' . $arr[$i]; 
} 

$tmp .= ')'; 

echo $tmp; 

これは1つの方法です。他にも多くの方法があります。

関連する問題