Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Я говорю: «уместнее», а не «более высокая производительность», потому что в этом примере, где мы работаем с крошечной строкой электронной почты.
$s[0] = $s[0]=='@' ? '#' : $s[0];
К сожалению, некоторые разработчики не поняли, что это означает, а просто решили что регулярные выражения ужасны не производительны и что они должны любой ценой избежать регулярных выражений.
Регулярные выражения являются мощным инструментом.
Например, скажем, вы хотите проверить адрес электронной почты, просто проверив символ @.
Тогда наш строками кода становится более сложной и менее читается
$length = strlen( $string );
if ( 0 === strpos( $string, '@' ) && $length - 1 === strrpos( $string, '@' ) ) {
$string = '#' . substr( $string, 1, $length - 1 ) . '#';
}
if ($s[0]=='@' && $s[strlen($s)-1]=='@') { $s[0]='#'; $s[strlen($s)-1]='#'; }if ($s[0].substr($s, -1) == '@@') { $s[0]=$s[strlen($s)-1]='#'; }if (substr($string, 0, 1) == '@' && substr($string, -1) == '@') {
$string = '#' . substr($string, 1, strlen($string) - 2) . '#';
}
if ($s[0].substr($s, -1) == '@@') { $s[0]='#'; $s[strlen($s)-1]='#'; }
Перестаньте избегать регулярных выражений