Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Замена значений [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
Строитель Модератор
Отправлено: 20 Июля, 2017 - 21:45:48
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
есть, вернуло значение в статистику 1500575243, все верно)
Ну и теперь осталось только выяснить, нужно ли что-то делать с оригинальным значением (макросом), и с заменяемым значением? Иначе говоря, нужно ли как-то связывать старое и новое значения? И нужно ли заменять метку времени, которая подставляется сейчас, на что-то другое? (например на уникальную строку, чтобы не было совпадений при одновременном запуске скрипта несколькими пользователями) Или больше ничего не требуется?
(Добавление)
Бронислав пишет:
а как правильно добавить несколько значений utm_term?
А вам разве заранее известны комбинации макросов?
 
 Top
Бронислав
Отправлено: 20 Июля, 2017 - 22:00:50
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель
Цитата:
А вам разве заранее известны комбинации макросов?

Комбинации - это список ключевых слов, который мне нужно указать и указать, на какое значение изменить (метка времени не подходит, так как я не смогу расшифровать, за какое ключевое слово она отвечает - она постоянно будет разной).
Я говорил, что мне неизвестно, что передаст {keyword} в utm_term, потому что вы указали в первом варианте кода {keyword_1}, т.е. имели ввиду конкретное значение, правильно? Но я ведь не могу указать одно ключевое слово, хотя пользователь пришел с другого. Или я не так понял?
{keyword} передает в utm_term ключевые слова. В коде {keyword} нигде не участвует именно в таком виде.
Осталось сделать так, чтобы:
если utm_term=ключевое_слово_1 => заменяем на новое_значение_1
если utm_term=ключевое_слово_2 => заменяем на новое_значение_2 и т.д.
если utm_term=значения_нет_в_этом_списке=> заменяем на значения_нет_в_этом_списке
Как правильно это указать?

(Отредактировано автором: 20 Июля, 2017 - 22:11:26)

 
 Top
Строитель Модератор
Отправлено: 20 Июля, 2017 - 22:09:31
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
Осталось сделать так, чтобы:
если utm_term=ключевое_слово_1 => заменяем на новое_значение_1
если utm_term=ключевое_слово_2 => заменяем на новое_значение_2 и т.д.
Как правильно это указать?
Если вам заранее не известны все ключевые слова, то наверное никак, ведь для замены чего-то на что-то необходима какая-то ассоциативная связь, верно?

Если вам не известен список ключевых слов, то как вы определите, что и на что надо заменить? -- понимаете о чём я?
(Добавление)
Бронислав, можно попробовать иначе. Например (так, как сейчас реализовано):
1. принимать макрос
2. передавать его в массив
3. производить замену макроса на уникальную строку
4. сохранять в ассоциативный массив пару "макрос" => "строка_на_которую_он_заменён"
5. записывать этот массив в текст.файл для последующего анализа
 
 Top
Бронислав
Отправлено: 20 Июля, 2017 - 22:17:40
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Бронислав пишет:
Осталось сделать так, чтобы:
если utm_term=ключевое_слово_1 => заменяем на новое_значение_1
если utm_term=ключевое_слово_2 => заменяем на новое_значение_2 и т.д.
если utm_term=значения_нет_в_этом_списке=> заменяем на значения_нет_в_этом_списке
Как правильно это указать?
Если вам заранее не известны все ключевые слова, то наверное никак, ведь для замены чего-то на что-то необходима какая-то ассоциативная связь, верно?

Если вам не известен список ключевых слов, то как вы определите, что и на что надо заменить? -- понимаете о чём я?

так я ж говорю, мне как раз нужно указать список этих слов, все ключевые слова, по которым пользователи переходят мне известны, ведь я их указываю в рекламной кампании! это ключевое слово, а не поисковый запрос, т.е. у меня есть определенный список этих слов.
И задача, чтобы код проверял совпадает ли utm_term, который вытаскивает GET из ссылки с тем utm_term, который указан в списке и, если да, то заменял это значение на новое значение, а если нет, то оставлял в первоначальном виде.

(Отредактировано автором: 20 Июля, 2017 - 22:18:53)

 
 Top
Строитель Модератор
Отправлено: 20 Июля, 2017 - 22:21:59
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
так я ж говорю, мне как раз нужно указать список этих слов, все ключевые слова, по которым пользователи переходят мне известны, ведь я их указываю в рекламной кампании! это ключевое слово, а не поисковый запрос, т.е. у меня есть определенный список этих слов.
И задача, чтобы код проверял совпадает ли utm_term, который вытаскивает GET из ссылки с тем utm_term, который указан в списке и, если да, то заменял это значение на новое значение и, а если нет, то оставлял в первоначальном виде.
А, ну так тогда всё тот же массив, что был и в начале этой темы
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. if (!empty($_GET['utm_term'])) {
  4.     $utm_term = strip_tags($_GET['utm_term']);
  5.    
  6.     // Массив для замены
  7.     $arr = [
  8.         'ключевое_слово_1' => 'заменяем на новое_значение_1',
  9.         'ключевое_слово_2' => 'заменяем на новое_значение_2',
  10.         'ключевое_слово_3' => 'заменяем на новое_значение_3'
  11.     ];
  12.    
  13.     // Заменяем макрос на соответствующее значение массива
  14.     $utm_term = strtr($utm_term, $arr);
  15. } else {
  16.     $utm_term = '';
  17. }
  18.  
  19. ?>
  20.  
  21. <!DOCTYPE html>
  22. <html lang="en">
  23.     <head>
  24.         <meta charset="UTF-8">
  25.         <meta http-equiv="refresh" content="1; url=http://xxx.xx/in/offer/xxx?aid=xxx&campaign=xx&source=<?=$_GET['utm_source']?>&sub_id4=<?=$utm_term?>">
  26.     </head>
  27. <body>
  28.  
  29. </body>
  30. </html>
 
 Top
Бронислав
Отправлено: 20 Июля, 2017 - 22:41:47
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель
Работает!
И последний вопрос: если я указываю 'ключевое слово' кириллицей и несколько слов, то замена не происходит. Как это решается?
Даже нет, всё кириллическое оно отбраковывает.
Так, кодировка не та (ну, как обычноУлыбка )

(Отредактировано автором: 20 Июля, 2017 - 22:50:37)

 
 Top
Строитель Модератор
Отправлено: 20 Июля, 2017 - 22:52:14
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
Строитель
Работает!
И последний вопрос: если я указываю 'ключевое слово' кириллицей и несколько слов, то замена не происходит. Как это решается?
Даже нет, всё кириллическое оно отбраковывает.
Попробуйте декодировать url (хотя, если не ошибаюсь, в массиве $_GET данные вроде бы должны быть раскодированы) функцией rawurldecode(). Пример с её использованием:
Спойлер (Отобразить)
 
 Top
Бронислав
Отправлено: 20 Июля, 2017 - 22:59:06
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель
нет, не работает
решилось, просто кодировку файла на хостинге изменил) правда, кириллицу в новых_значениях также не поддерживает, но это не критично.

(Отредактировано автором: 20 Июля, 2017 - 23:15:23)

 
 Top
Строитель Модератор
Отправлено: 20 Июля, 2017 - 23:04:29
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
Строитель
нет, не работает
я вот нашел такое:
Цитата:
$convertedText = mb_convert_encoding($text, 'utf-8', mb_detect_encoding($text));
как его правильно интегрировать? Или это не то?
Попробуйте так
Спойлер (Отобразить)
 
 Top
Бронислав
Отправлено: 20 Июля, 2017 - 23:16:06
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2017  


Помог: 0 раз(а)




Строитель пишет:
Бронислав пишет:
Строитель
нет, не работает
я вот нашел такое:
Цитата:
$convertedText = mb_convert_encoding($text, 'utf-8', mb_detect_encoding($text));
как его правильно интегрировать? Или это не то?
Попробуйте так
Спойлер (Отобразить)

Цитата:
$encoding = mb_detect_encoding($utm_term);
$utm_term = mb_convert_encoding($utm_term, 'UTF-8', $encoding);

Да, после этого работает и в ключевых словах и в новых значениях!
Спасибо большое! Очень помогли! Успехов вам!
 
 Top
Строитель Модератор
Отправлено: 20 Июля, 2017 - 23:17:10
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Бронислав пишет:
Успехов вам!
Взаимно! Закатив глазки
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB