2012-03-16 15 views
-1
$string = "This is <a href="http://www.google">a</a> string with a link and I want to count the value of href attribute" 

文字列があり、その文字列から10文字をHTMLに出力したいとします。文字列内のサブ文字列を数えます。

問題は、私が10文字をエコーアウトしていることですが、aタグ内の文字も数えています。 I私はその値を見つけるどのように単純な広告"<a href=""></a>のstrlen関数」でしたが、私はHREFのattrの値の長さになりまし決して

編集:。?

あなたが見抜粋があるブログに私はカスタム機能を使って文字を数えて抜粋しています。私は100文字のようにしたいと思いますが、最終的なリンクも残しておきたいと思いますが、 "< a href = "..."> </a> "最後の文字列が短くなりました。私は、動的に生成されたhref値の長さを見出し長の変数に追加したいと思っています。

これで十分ですか、別のマイナスがありますか?

+0

私はあなたがやろうとしているかを理解いけません。 'http:// www.google'は10文字ではなく(tld btwを逃しています)、' 'もありません。質問を明確にしてください。あなたは何を数える/達成しようとしていますか? – Gordon

+0

Fyi、投稿した文字列にエスケープされていない引用符が含まれているため、構文エラーがあります。エラーと醜いエスケープを避けるために、一重引用符で囲みます。 – ThiefMaster

+2

質問が明確ではありません。私はタグの代わりに文字を数えたいと思う? – Ben

答えて

2

strip_tags()関数を使用して内部のhtmlを削除し、次に消去した文字列を部分文字列にします。

<? 

$string = "i am <a href='http://www.google.com'>a</a> string with links"; 

$clean = strip_tags($string); 

echo substr($clean,0,10); 

?> 
+0

それも私の推測でした。 –

+0

質問があまりうまくいきませんでしたが、私はこの解決策が必要だと確信しています。なぜなら、彼はこう言っていたからです。タグ"。文字列に複数のタグや他の属性、または他のタグが含まれていても、実際にhref属性の長さを取得したいとは思っていません。 – kappa

0

私は私はあなたが何をしようとして理解してきたわからないんだけど、ただのアイデア:

あなたの完全なストリップタグ場合は、あなたの文字列から。これは文字列です」のようなものを持っていますリンク付きで...」と、それはうまくいくのだろうか?そうであれば、ここに必要なのは...

$string = strip_tags($string); 
0

ブログにはアンカー、画像、タグ、段落が含まれています。

サイドバーの抜粋を提案したい場合は、最初の段落をターゲットにしてタグを削除します。タグを削除するのは、文字列を数えなければならないためですあなたの道にあるもの。

if(!function_exists('excerpt')){ 

    function excerpt($string, $len='300'){ 

     // look for the first instance of a closing paragraph tag 
     // +4 to add the closing tag back, then strip them. 
     $new_string = strip_tags(substr($string, 0, strpos($string, "</p>")+4)); 

     // now shorten the string to the required length. 
     $str = substr($new_string, 0, $len); 

     // find the last space in the string 
     // this will be used as the offset in the last substr 
     // so we dont end up with words like (paragr) 
     $index = strrpos($str, ' '); 

     // finally return the new string and append (...) 
     return substr($str, 0, $index) . '&hellip;'; 

     //you might want to wrap it in a <p> tag when done 
    } 
} 

-

echo htmlspecialchars_decode(excerpt($string, 200)); 
関連する問題