2015-12-25 9 views
6

Sto cercando di ottenere la lunghezza delle immagini in una stringa.Contare la lunghezza delle immagini in una stringa

mia stringa

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

dalla stringa di cui sopra, voglio ottenere l'output "4 immagini".

Ho provato la funzione preg_match_all() e count(), ma restituisce sempre "1 immagine".

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

C'è un altro modo per sapere quante immagini ci sono in una stringa?

+0

Se è un valore fisso, è possibile utilizzare 'substr_count()' – Rizier123

risposta

11

Preg_match_all restituisce un array multidimensionale. Gli array sono i gruppi di cattura. Dato che non stai catturando nulla, vuoi contare l'indice 0 di $m (che è tutti i valori trovati). In modo da utilizzare:

echo count($m[0]); 

per la dimostrazione questo è il vostro $m.

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

) 

L'count conta solo l'indice 0, in modo da ottenere 1.

3

È possibile utilizzare il codice

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

O questo è l'alternativa

<?php 
$page="<img><img><img><img>"; 
$words = substr_count($page, '<img>'); 
print_r($words); 
?> 
Problemi correlati