2015-12-25 5 views
6

文字列内の画像の長さを取得しようとしています。文字列内の画像の長さをカウントする

私の文字列

$page="<img><img><img><img>"; 

上記の文字列から、私は出力 "4枚の画像を" 取得したいです。

私はpreg_match_all()count()の機能を試しましたが、常に「1画像」を返します。

$page="<img><img><img><img>"; 
preg_match_all("/<img>/",$page,$m); 
echo count($m); 

文字列に含まれる画像の量を知る他の方法はありますか?

+0

固定値の場合は、 'substr_count()'を使うことができます。 – Rizier123

答えて

11

です。配列はキャプチャグループです。あなたが0のインデックスを$m(これはすべての値が見つかりました)とカウントしたいものをキャプチャしていないためです。だから、使用:

echo count($m[0]); 

デモでは、これはあなたの$mです。

Array 
(
    [0] => Array 
     (
      [0] => <img> 
      [1] => <img> 
      [2] => <img> 
      [3] => <img> 
     ) 

) 

count0インデックスをカウントし、あなたは1を取得します。

3

あなたはコード

<?php 
$page="<img><img><img><img>"; 
preg_match_all("/<img>/",$page,$m); 
echo count($m[0]); 
?> 

またはこれを使用することができます多次元配列を返すPreg_match_all代替

<?php 
$page="<img><img><img><img>"; 
$words = substr_count($page, '<img>'); 
print_r($words); 
?> 
関連する問題