#php #prestashop
#php #prestashop
Вопрос:
У меня есть prestashop. использование модуля IMPORTOSC для ввода данных.
Все работает отлично, выдает только изображение, в котором есть пробел, имя s, как не импортированное в prestashop.(Пробел в URL-адресе)
Код для импорта категории:
public function getCategories($limit = 0, $nrb_import = 100) {
$multiLangFields = array('name', 'link_rewrite');
$keyLanguage = 'id_lang';
$identifier = 'id_category';
$categories = $this->ExecuteS('
SELECT c.categories_id as id_category, c.parent_id as id_parent, 0 as level_depth, cd.language_id as id_lang, cd.categories_name as name , 1 as active, categories_image as images
FROM `'.bqSQL($this->prefix).'categories` c
LEFT JOIN `'.bqSQL($this->prefix).'categories_description` cd ON (c.categories_id = cd.categories_id)
WHERE cd.categories_name IS NOT NULL AND cd.language_id IS NOT NULL
ORDER BY c.categories_id, cd.language_id
LIMIT '.(int)($limit).' , '.(int)$nrb_import);
foreach($categories asamp; $cat)
{
$cat['link_rewrite'] = Tools::link_rewrite($cat['name']);
$cat['images'] = array(Tools::getProtocol().Tools::getValue('shop_url').'/images/'.$cat['images']);
}
return $this->autoFormat($categories, $identifier, $keyLanguage, $multiLangFields);
}
Я искал, и, похоже, это может быть исправлено str_replace(‘ ‘, ‘% 20’, trim($ url))
может кто-нибудь помочь мне с кодом.
Ответ №1:
Вместо str_replace()
этого используйте urlencode()
(подробнее см. Руководство по PHP). urlencode()
Функция правильно кодирует все не-альфа-символы, кроме «-» и «_».