@ololodff

Как правильно разобрать содержимое переменной через определенный символ с помощью explode на PHP?

$sql_poster = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}' LIMIT 2" );
		$poster = $db->get_row($sql_poster);
		if ($poster['images'] != "") {
			$scrsList = explode('|||',$poster['images']);
		    $scrs = '';
		    $cntscrs = 90;
		    $ai = 0;
		    foreach ($scrsList as $scr){
		        $ai++;
		        $scr = trim($scr);
		        $poster_temp = explode("/",$scr);
		        $poster_name = $poster_temp[1];
		        $poster_data = substr($scr,0,8);
		        if ($ai<=$cntscrs) {
		            $scrs .= '
						<a data-fancybox="gallery" class="swiper-slide" href="'. $config ['http_home_url'] . 'uploads/posts/'.$poster_data.''.$poster_name.'">
							<div class="swiper-slide ssr" style="background-image:url('. $config ['http_home_url'] . 'uploads/posts/'.$poster_data.''.$poster_name.')"></div>
						</a>
					'; } else {$scrs .= '';}
			}
		    unset($scrsList);
		    if (!empty($poster['images'])) {$scrall= $scrs;}
			$tpl->set ( '{poster}', $scrall);
		} else $tpl->set ( '{poster}', "" );


Сейчас этот код выглядит так, запрос обращается в базу и получает в ответ имена картинок которые записаны в базе.
НО! Сейчас структура базы немного изменилась, и теперь в ячейке images содержится не только название картинки но и её параметры.

Например:
Было: 123_image.png
Стало: 123_image.png|1|1|1200x664|95.88 Kb
Как мне использовать только имя изображения? и разбить переменную $scrsList с помощью explode?
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Опустим грустную часть где вы не осилили 3 нормальную форму и изголяетесь со строкой, еще и в достаточно извращенном формате (что например мешало залить туда хотя бы json?).
$scrsList = explode('|||',$poster['images']); 
var_dump($scrsList); //смотрим что у нас попало в $scrsList, должен быть массив строк
... 
foreach ($scrsList[1] as $scr){ //почему $scrsList[1]??? Это же первый элемент, там строка лежит!
...
$poster_temp = explode("/",$scr); // откуда косая? У вас же там "|" ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы