Come devo contare il numero di occorrenze di un carattere all'inizio di una stringa in PHP
Domanda
Il meglio che ho potuto inventare è:
strlen (preg_replace ( '/ ^ ([\\ *] *) \ s (+) /.', & Quot; $ 1 ", $ line));
^^ Questo sembra dare la lunghezza della stringa. ^^
modifica: penso che dovrei chiarire che il personaggio che sto cercando di trovare è '*'
Soluzione
preg_match consente un parametro di output che è riempito con le corrispondenze, quindi puoi semplicemente prendere la tensione della corrispondenza per il modello / ^ ** /:
$matches = array();
preg_match("/^\**/", $string, $matches);
$result = strlen($matches[0]) ;
...
"***Hello world!*" -> 3
"Hello world!" -> 0
Altri suggerimenti
Questo è un po 'traballante ma potrebbe funzionare - conta il numero di volte che il primo personaggio viene ripetuto:
strlen($line) - strlen(ltrim($line, $line[0]));
Se vuoi solo rimuovere tutte le stelle dall'inizio, allora questo è un po 'più facile
strlen($line) - strlen(ltrim($line, '*'));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow