Ben gelmek mümkün olmuştur ki en iyisidir:
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line)); ^^That seems to give the length of the string.^^
strlen(preg_replace('/^([\\*]*)\s(.+)/',"$1",$line));
düzenleme: ben bulmaya çalışıyorum '*' karakteri olduğunu açıklamak gerektiğini düşünüyorum
preg_match maçlarla dolu bir çıkış parametresi, böylece basitçe maçın strlen alabilir veriyor desen / ^ ** /:
$matches = array(); preg_match("/^\**/", $string, $matches); $result = strlen($matches[0]) ;
...
"***Hello world!*" -> 3 "Hello world!" -> 0
Bu biraz sakat ama işe yarayabilir - bu ilk karakter tekrarlanır sayısını sayar:
strlen($line) - strlen(ltrim($line, $line[0]));
Sadece başından itibaren tüm yıldızları kaldırmak istiyorsanız, o zaman bu biraz daha kolay
strlen($line) - strlen(ltrim($line, '*'));