Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сравнить две строки с URL? одинаковые строки не сравниваются 
:(
    Опции темы
Nicholas
  Дата 12.10.2015, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Сломал себе голову!

На сайте менюшку делаю надо мне тупо узнать активнй пункт меню, для этого сравниваю url пункта меню и url  открытой страницы, дак вот хоть  убей не сравниваются они у меня хотя абсолютно одинаковые!((((


$PageUri = strval(strtolower(trim($APPLICATION->GetCurUri())));
$MenuUri = strval(strtolower(trim($arMenu['LINK'])));

echo показывает строки:

PageUri    =/about/dependents/finansovyy-otdel/byudzhet-dlya-grazhdan/?section_id=177&element_id=545
MenuURL =/about/dependents/finansovyy-otdel/byudzhet-dlya-grazhdan/?section_id=177&element_id=545

сразу видно что они идентичные, но вот такая конструкция не работает, так же как и варианты с разными функциями сравнения строк типа strcasecmp(), ‎strncasecmp()...

Код

if (strval($PageUri) == strval($MenuUri) )
{
    echo "Активный пункт меню ".$arMenu['TEXT'].'<br>';

}



PM MAIL ICQ   Вверх
ksnk
Дата 12.10.2015, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Вероятно, нужен еще  url_decode.
Попробуй посмотреть "исходный код" страницы, где выводятся значения PageUri и MenuUri


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nicholas
Дата 12.10.2015, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Цитата(ksnk @  12.10.2015,  10:39 Найти цитируемый пост)
Попробуй посмотреть "исходный код" страницы, где выводятся значения PageUri и MenuUri 

А что я должен там увидеть?  smile 

var_dump показывает одинаковые строки, НО разную длину...(( bin2hex выдает разные значения, т.е. строки с разными символами, вопрос с какими?

Это сообщение отредактировал(а) Nicholas - 12.10.2015, 11:36
PM MAIL ICQ   Вверх
ksnk
Дата 12.10.2015, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(Nicholas @  12.10.2015,  11:26 Найти цитируемый пост)
А что я должен там увидеть? 

Символы & в строке с бОльшей длиной будут заменены на конструкция &amp;  - +4 символа на каждый &. 

"Исходный текст страницы" показывается в броузере


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nicholas
  Дата 12.10.2015, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Цитата(ksnk @  12.10.2015,  11:36 Найти цитируемый пост)
Символы & в строке с бОльшей длиной будут заменены на конструкция &amp;  - +4 символа на каждый &. 


Думал я о этих символах и даже решил их совсем убрать функцией

Код


function ubrat_spec_simvoli($stroka){
  $gotovo = preg_replace("/\s+/", "_", trim($stroka));
  $gotovo = preg_replace("/\W+/", "", $gotovo);
  $gotovo = preg_replace("/_/", "-", $gotovo);
  if ($gotovo[0] == '-')
    return strtolower( substr($gotovo, 1) );
  return strtolower($gotovo);
}



убрал а толку...

aboutdependentsfinansovyyotdelbyudzhetdlyagrazhdansection-id177element-id545 теперь  НЕ РАВНО aboutdependentsfinansovyyotdelbyudzhetdlyagrazhdansection-id177element-id545

Добавлено через 12 минут и 13 секунд
После удаления спец символов $MenuUri = "aboutdependentsfinansovyyotdelbyudzhetdlyagrazhdansection-id177ampelement-id545" 

т.е. после id177 появились "amp" похоже функция удаления спец символов криво работает, как бы мне эти символы удалить?

Это сообщение отредактировал(а) Nicholas - 12.10.2015, 11:42
PM MAIL ICQ   Вверх
ksnk
Дата 12.10.2015, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Сохрани обе строки каждую в свой файл. Сравни оба файла diff'ом.

Какая-то мистика ...




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nicholas
  Дата 12.10.2015, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Цитата(ksnk @ 12.10.2015,  12:00)
Сохрани обе строки каждую в свой файл. Сравни оба файла diff'ом.

Скорей всего все дело в том, что одну строку я тяну из  URL страницы, а вторую из массива пунктов меню. Вот какраз та строка, что из массива на 4ре символа длиннее показывается всеми функциями отображающими длину строки. Но визуально она абсолютно идентична первой.
Видимо символ & в другой кодировке или ещё что...
PM MAIL ICQ   Вверх
ksnk
Дата 12.10.2015, 12:43 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386




html_entity_decode 
Он убирает все html-последовательности


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Nicholas
  Дата 13.10.2015, 03:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 436
Регистрация: 30.9.2004

Репутация: нет
Всего: 0



Цитата(ksnk @  12.10.2015,  12:43 Найти цитируемый пост)
html_entity_decode 
Он убирает все html-последовательности 


Спасибо помогло. Мне кажется я пробовал ее использовать но не получалось, возможно это была другая функция.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0772 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.