2014-01-17 5 views
-1

У меня есть следующий код:Заменить определенный текст

<?php 
$actual_link = "domain.com/search/q/laptop/attr/price_range_11_50005/attr/23914175_laptop"; 
     if ($attribute->name == "Price range") 
     { 
      if (strpos($actual_link,'/attr/price_range_') !== false) 
       { 
        $querystring = explode("&",preg_replace(array("/attr/price_range_[0-9_]+/", "", $actual_link))); 
       } 
      else 
       { 
        $querystring = explode("&",$actual_link); 
       } 
       } 
     } 

По какой-то причине его не работает, код должен заменить текущий «/ атр/price_range» ничего на ссылке.

ответ

1

Ваше регулярное выражение неверно:

preg_replace(array("/attr/price_range_[0-9_]+/", "", $actual_link) 

Как вы используете слэш / как delimiter, вам нужно, чтобы избежать его или использовать другой разделитель:

preg_replace(array("/\/attr\/price_range_[0-9_]+/", "", $actual_link) 

или

preg_replace(array("#/attr/price_range_[0-9_]+#", "", $actual_link) 
+0

Привет, это имеет значение, если между цифрами есть «_»? например price_range_11_50005 – user3134976

+1

@ user3134976 Нет, '[0-9 _] +' - последовательность из 1 или более символов в классе символов в любом порядке. – jeroen

Смежные вопросы