Кодировка кода php при обращении к поиску Яндекса


malpa
346

Имеется код на сайте, сделанном на php:

<a href=»https://libmonster.net/search.html?searchid=2346950&text=<?php%20echo%20echo_title();%20%20?>»>найти похожие</a>

На конечной странице (https://libmonster.net/search.html) поиск Яндекса не происходит, так как конечный сайт сделан на кодировке UTF-8, а исходный — на Windows-1251.

То есть запрос <?php echo echo_title(); ?> формируется на windows-1251 и приходит в этой же кодировке на страничку https://libmonster.net/search.html и никак не обрабатывается.

Вопрос именно в кодировке, так как если изменить ссылку на:

<a href=»https://libmonster.net/search.html?searchid=2346950&text=7777777″>найти похожие</a>

или на

<a href=»https://libmonster.net/search.html?searchid=2346950&text=abcdefghijk»>найти похожие</a>

то поиск происходит. То есть поиск происходит только если запрос содержит латиницу или цифры.

<?php echo echo_title(); ?> — этот код выводит (успешно) заголовок статьи.

Соответственно, вопрос:

Как сделать так, чтобы заголовок статьи, выводимый с помощью кода (<?php echo echo_title(); ?>), шел на сторонний сайт в кодировке, распознаваемой поисковой формой Яндекса?

Что не пробовал, ничего не получается.


LEOnidUKG

php функции urlencode и urldecode вам в помощь.


malpa

LEOnidUKG:
php функции urlencode и urldecode вам в помощь.

Спасибо.

Может, вы владеете синтаксисом этой функции?

<?php echo urlencode(echo_title()); ?> — такой вариант ничего не дает, ничего не происходит 😡


totamon

malpa:
Может, вы владеете синтаксисом этой функции?

а php.net на что? если вы уж пытаетесь php-кодить, то синтаксис посмотреть это самое простое…


ivan-lev

totamon:
а php.net на что? ес

Думаю, уже всё посмотрено, т.к.

malpa:
На конечной странице (https://libmonster.net/search.html) поиск Яндекса не сейчас происходит


SocFishing

мб так, я хз в чем у вас траблы

<?php header(‘Content-Type: text/html; charset=utf-8’); ?>

<a href=»https://libmonster.net/search.html?searchid=2346950&text=<?=rawurlencode(mb_convert_encoding((string)echo_title(),%20’utf-8′,%20mb_detect_encoding((string)echo_title())));?>&web=0″>найти похожие</a>

Понял. Вам нужно

«Гербер»

https://libmonster.net/search.html?searchid=2346950&text=%D0%93%D0%B5%D1%80%D0%B1%D0%B5%D1%80&web=0

Что дает кодировка выше «Гербер»

https://libmonster.net/search.html?searchid=2346950&text=%D0%93%D0%B5%D1%80%D0%B1%D0%B5%D1%80&web=0

Возможно проблема до была в первоначальной кодировке. Так как «Гербер» в win 1251 иероглифы

%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD

Ваш файл должен быть в utf-8 и заголовок Content-Type charset=utf-8

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *