2011-05-20 50 views
2

我需要例如計算單詞內容在一個變量 的功能的插入標籤:計數單詞和在可變的PHP

$comments=bla bla bla bla bla bla bla

,並在4字例如插入件從所述第一字開始本文標籤:"<!--more-->" 所以在最後我在此模式下 $comments=bla bla bla bla<!--more-->bla bla bla

它可能有新的變化?

我發現這是appaear工作,我想與大家分享

function strpop($str, $word, $num=10) 
    { 
    if(str_word_count($str,0,'123456789') <= $num) 
    return $str." ".$word; 

    $tmp = array_keys(str_word_count($str,2, '123456789')); 
    for($x=0; $x < sizeof($tmp)-$num; $x+=$num) 
    { 
    $portion .= substr($str, $tmp[$x], $tmp[($x+$num)]) . $word; 
    } 
    return $portion; 
    } 
$string = "$comments"; 
$word_to_add = "<!--more-->"; 

$newstr = strpop($string, $word_to_add); 

回答

2
$s="This is a very long string, here, actually really really long, or not that much."; 
$toinsert="<!--more-->"; 

$tok=strtok($s, " "); 
$s2=''; 
for ($i=1; $tok!==false; $i++) { 
    $s2.=$tok.' '.($i == 4 ? $toinsert : ''); 
    $tok=strtok(" "); 
} 

$s2將容納你的新字符串。

PHP strtok()

+0

感謝這部作品也是這對我來說很複雜 – grigione 2011-05-20 15:57:25

1
$comments = explode(' ', $comments); 
    $counter = 0; 
    $out = array(); 
    foreach($comments as $key => $value) { 
     $out[] = $value . ' '; 
     if (3 == $key){ 
      $out[] = '"<!--more-->"'; 
     } 
    } 
    $comments = trim(implode('', $out)); 
0

我認爲最好的辦法是:

1)使用正則表達式來提取標記代碼(HTML和註釋)。

你看到一個詳細的教程與有關正則表達式的例子: http://www.roscripts.com/PHP_regular_expressions_examples-136.html

2)提取畢竟標記代碼,你可以做簡單的爆炸。

就是這樣。

+0

確定INFACT不工作,但我是一個新受 – grigione 2011-05-20 14:07:03