2012-02-26 3 views
2

Мне нужно заменить белый интервал знаком плюса «+» для кода, показанного ниже.Заменить белый интервал

Я в процессе изменения кода, который генерирует ярлык и url для продуктов, отображаемых в моем каталоге. Проблема, с которой я сталкиваюсь, заключается в том, что мой текущий код не выполняет замену. Кто-то может изменить код, заменив интервал на знак «+».

<h5><a href="http://www.efficienttrade.co.nz/catalogsearch/result/order=relevance&dir=desc&q=<?php echo $this->stripTags($_product->getName(), null, true) ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h5> 

и возвращает URL-адрес что-то вроде этого:

http://www.efficienttrade.co.nz/catalogsearch/result/?order=relevance&dir=desc&q=potassium нитрата

Однако, когда GetName() используется функция, имена, которые имеют место не работают для сгенерированной поискового запроса , Поэтому мне нужно заменить пространство «+», чтобы заставить URL-адрес поискового запроса работать.

Благодаря

+0

Кстати, код довольно трудно читать. –

+0

Я не знаю, как сделать это более крупным ящиком прокрутки ... Как мне дать высоту. –

+0

Я бы просто добавил некоторые пробелы. –

ответ

1

Насколько я понимаю вашу проблему, вам нужно заменить пробелы от hypens в названии вашего продукта. Это может быть достигнуто путем замены следующий код в HREF

...<?php echo $this->stripTags($_product->getName(), null, true); ?>... 

с

...<?php echo str_replace(' ', '-', $this->stripTags($_product->getName(), null, true)); ?>... 
1

Как о следующем, чтобы сделать вам код немного лучше (хотя PHP/HTML суп никогда не очень весело) , Первая строка PHP - это та, которая заменяет пробелы дефисом

<?php 
    /*Get product name, stripped of HTML and spaces*/ 
    $productName = str_replace(' ', '-', strip_tags($_product->getName(), null, true)); 

    /*Assign variables rather than using same function multiple times.*/ 
    $productAttribute = $_helper->productAttribute($_product, $_product->getName(), 'name'); 
    /*Concatenate the URL here for easier code fixing later.*/ 
    $url = 'http://www.efficienttrade.co.nz/catalogsearch/result/order=relevance&dir=desc&q=' . $productName; 
?> 
<h5> 
    <a href="<?php echo $url; ?>"title="<?php echo $productName; ?>"><?php echo $productAttribute ?></a> 
</h5> 
+0

Это выглядит хорошо, но я Magento/PHP noob и продолжаю получать это сообщение, когда пытаюсь вставить код. Неустранимая ошибка: вызов неопределенной функции stripTags() в –

+0

Замените stripTags() на strip_tags() или используйте метод класса в вашем коде, который равен $ this-> stripTags(); – fred2

+0

Теперь он не отображает конкатенированный текст «имя продукта». знаете, что случилось с переменной «url»? или как мы должны подключать 2 части. Спасибо –

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