Доброй ночи, должно быть совсем просто, но не вижу где ошибка. Есть строка(строки), надо убрать номер, пробелы, черточки, они всегда в начале, и оставить текст, в примере "I love the Beatles" надо получить из "01 - I love the Beatles". Цикл внизу дает " - I love the Beatles", то есть прекращает работу на i =2. Почему? Спавсибо. PHP: $str ='01 - I love the Beatles'; for($i=0; $i<strlen($str); $i++) { echo $i; if($i != '0' & $i != '1' & $i != ' ' & $i != '-' ) { $str = substr($str, $i); echo $str.'DD'.$i; break; } }
Да, конечно разумнее здесь рег. выражения использовать. СПАСИБО. Правда где ошибка в цикле так и не врубился.
я вижу несколько ошибок. думаю вы хотели чтобы получилось чтото такое: PHP: $str ='01 - I love the Beatles'; for($i=0; $i<strlen($str); $i++) { $ii = $str[$i]; if($ii != '0' && $ii != '1' && $ii != ' ' && $ii != '-' ) { $str = substr($str, $i); echo $str; break; } }
@runcore, не обязательно выпиливать из строки, можно собирать другую переменную, добавлять в неё все символы отличные от пробела и добавлять один пробел только при смене пробела на любое другое значение. @Vladchucha, ещё как вариант можно разбить предложение по пробелам функцией explode, убрать пустые значения и собрать обратно при помощи implode.