PHP-та кері слеш мәселесі
Кері слеш PHP-тің арнайы таңбасы болып табылады. Бұл дегеніміз, жолда слеш өзін білдіргісі келсе, біз оны екі есе көбейтуіміз керек:
<?php
$str = '\\ \\\\ \\\\\\'; // шын мәнінде жол '\ \\ \\\'
?>
Кері слеш сонымен қатар регулярды өрнектердің де арнайы таңбасы болып табылады. Бұл дегеніміз, регулярды өрнектің ішінде слеш өзін білдіргісі келсе, оны төрт рет жазу керек:
<?php
echo preg_replace('#\\\\#', '!', '\\ \\\\ \\\\\\'); // шығарады '! ! !!'
?>
Енді шамасы бір немесе одан да көп рет кері слеш
болатын іздеу үрдісі бар регулярды өрнек жазайық.
Осындай жағдайда біз + операторын
тобырмай 4 таңба үшін жазамыз:
<?php
echo preg_replace('#\\\\+#', '!', '\\ \\\\ \\\\\\'); // шығарады '! ! !'
?>
Берілген жол:
<?php
$str = 'a\\b c\\d e\\f';
?>
Осы жолда әріп, кері слеш, әріп үлгісі бойынша барлық ішкі жолдарды табыңыз.
Берілген жол:
<?php
$str = 'a\\b c\\\\d e\\\\\\f';
?>
Осы жолда әріп, кері слеш кез келген мөлшерде, әріп үлгісі бойынша барлық ішкі жолдарды табыңыз.