Технологии
Решено
есть строка $a="/1/23/456/789/10/"; Как можно... - вопрос №797531
есть строка $a="/1/23/456/789/10/"; Как можно удалить до такого регулярным выражением: $a="/1/23/456/789/";
октябрь 19, 2013 г.
-
Всего ответов: 4
-
substr(«строка», кол знаков )
<?php
$rest = substr(«abcdef», -1); // возвращает «f»
$rest = substr(«abcdef», -2); // возвращает «ef»
$rest = substr(«abcdef», -3, 1); // возвращает «d»
?> -
Если нужно просто удалить в конце ненужный кусок строки, то как уже писали — используйте substr(). Если кол-во символов после искомого фрагмента меняется, то тогда регуляркой:
$a="/1/23/456/789/10/"; // где ищем
$pattern = "'^(/1/23/456/789/)[\w/]*'"; //шаблон поиска
$replacement = "/1/23/456/789/"; //на что меняем
echo preg_replace($pattern, $replacement, $a);
Лучший ответ по мнению автора -
function Rpars($a,$p,$options){function s($a,&$b){$b=$b.$a;}$m=explode($p,$a);$sum=count($m);for($i=1;$i<=$sum-2-$options;$i++){s($p.$m[$i],$z);}$p=$z.$p;return $p;}
/*********
$a="/1/23/456/789/10/";
$b=Rpars($a,"/",1);
Выведет
$b="/1/23/456/789/";
//********
Если:
$b=Rpars($a,"/",2);
Выведет
$b="/1/23/456/";
Вообще без регулярки чистый PHP.
-
$a = explode("/",$a);
array_pop($a);
array_pop($a);
$a = implode("/",$a);
$a = $a."/";
Похожие вопросы