0

目標は、ユーザー テキストのグループの段落数をカウントすることです...

(この演習では、常に 5 段落よりも大きいと仮定します)

次に、段落数を 1/2 にして切り捨て、echo "yehhoo"間に content( ) を入力します。

私が得た方法が$newvalueあまり良くないことは理解しています。それについても助けてください...

<?php

$choppedup = explode("<p>",$node->field_long_body[0]['safe']);
$choppedpos = count($choppedup);
$choppedpos2 = $choppedpos/2;
$newvalue = floor($choppedpos2);

//I know this is working to here... the rest not so sure.

for($j = 0; $j < $choppedup; $j ++):
  print $choppedup[$j];
  if ($j == $newvalue):
    echo "yehhoo" ;       
  endif;
endif;
?>

ありがとうございました

4

3 に答える 3

3
for 
...
endfor;       # not endif

あなたの$newvalue計算はひどいものではありません。配列の反復については、むしろforeachループをお勧めします(中括弧を使用):

foreach($choppedup as $ind => $p) {
    echo $p;
    if ($ind == $newvalue) {
        echo 'yehoo';
    }
}
于 2009-08-14T11:38:39.597 に答える
1

中かっこは「Yehhoo」!

for($j == 0; $j < $choppedup; $j ++) {
     print $choppedup[$j];
     if ($j == $newvalue) {
          echo "yehhoo";
     }
}
于 2009-08-14T11:51:18.383 に答える
0

段落タグの数を数えるために、なぜこのような複雑なループがあるのでしょうか。

あなたはこのようなことをすることができます:

 $sInput = '<p>Hello World</p><p>What is going on</p><p>Blah</p>';
 if(preg_match_all('/<p>/', $sInput, $arMatches)!==false)
  print count($arMatches[0]) . ' paragraphs<br/>';

もちろん、上記は段落タグの間にテキストがあることを確認するためにいくつかの作業が必要ですが、これは必要に応じて機能するはずです。

于 2009-08-14T17:41:24.517 に答える