Задать вопрос
@Avguston

Как делать подмену заголовков из URL?

Всем привет. Я делаю мультилендинг. Это такая штука - когда переходишь с рекламы на яндексе, например, подставляется нужный заголовок - считывается он по ID рекламного объявления. После перехода по объявлению URL страницы имеет вид:
"http://site.ru/utm_source=yandex&utm_medium=cpc&ut..."
У меня в корне сайта лежит csv файл - с нужным ID, заголовком и подзаголовком. Вот мой код вывода заголовка на экран
<?
setlocale(LC_ALL, 'en_US.UTF-8');  //чтобы символы не обрезались
$part_a = "Part_1"; //Заголовок, который изначально был на сайте

$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; //считываем наш URL
$parsed_url = parse_url($url); //парсим его
if(mb_strlen($parsed_url['query']) > 20){ //делаем условие, чтобы часть урла после ? была больше 20
		$f = fopen ("test_x","r");  //Открываем файл
		while (($data = fgetcsv($f,1000, ",")) !== FALSE) { //Забираем данные из csv				
				$pos = strripos($parsed_url['query'], $data[0]);
				if ($pos == true) {
					echo $data[1].'<br>';
					echo $data[2].'<br>';
				}	
		}

} else { //если длина url меньше 20, то значит клиент не с рекламного объявления и оставляем наш первоначальный заголовок
	echo "$part_a";
}
?>

Вопрос: Насколько данный подход корректен и может я где - то не прав? В общем, покритикуйте, пожалуйста.
  • Вопрос задан
  • 116 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега PHP
Web developer
Проще не parsed_url, а сразу $utm_source, $utm_medium и пр. Естественно, предварительно проверив isset.

Парсить файл на каждый запрос - слишком ресурсоемко. Лучше много файлов: в названии типа $utm_source . '_' . $utm_medium . '.txt'. И file_exists().
Или в БД.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы