Burada benim sözdizimi ile yanlış?

3 Cevap php

Hedefi kullanıcıların metin bir grup paragrafların saymaktır ...

(Ben bu egzersiz için her zaman büyük 5'ten paragrafları varsayıyoruz)

Sonra o yuvarlak paragraf 1/2 sayı, aşağı isteyen ve arasında (echo "yehhoo") bazı içerik girin.

Ben benim $newvalue çok iyi değil aldık şekilde anlıyorum, ayrıca bu konuda yardım istiyorum ...

<?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;
?>

Teşekkür ederim

3 Cevap

for 
...
endfor;       # not endif

Lütfen $newvalue hesaplama Doğrusu foreach döngü (kıvırcık parantez kullanarak) öneririm dizi yineleme için, korkunç değil:

foreach($choppedup as $ind => $p) {
    echo $p;
    if ($ind == $newvalue) {
        echo 'yehoo';
    }
}

Kıvırcık parantez için "Yehhoo"!

for($j == 0; $j < $choppedup; $j ++) {
     print $choppedup[$j];
     if ($j == $newvalue) {
          echo "yehhoo";
     }
}

Neden paragraf etiketleri sayısını saymak için böyle karmaşık bir döngü yapmak?

Sen böyle bir şey yapabilirsiniz:

 $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/>';

Tabii ki yukarıda emin paragraf etiketleri arasında metin vardır yapmak için, ama ihtiyacınız için bu işe gereken bazı çalışma gerektiriyor.