кириллица в ссылке и php

Discussion in 'PHP' started by petryxa-mixa, 5 Mar 2012.

  1. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    в википедии переменной присыаиваеться значение гет методом и производится поиск в энциклопедии.проблема вот в чем.если этой переменной этой присвоить значение на английском ,то результат поиска она возвращает.А вот если присвоить кириллическое значение то уже ничего не возращает.Подозреваю что кириллица во что то просто переделываеться.пробывал басе64.не помогло.
    Вот ссылка 'ru.m.wikipedia.org/w/index.php?title=Special%3ASearch&search='
    если вставить просто в адресную строку то все тянет.
    Я же пробую это проделать через сирл.
    Вопрос вот в чем во что переделовать кириллицу для добавления ее к переменной?
    Может кто сталкивался с подобным?
     
  2. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    В utf-8, затем urlencode
     
  3. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    и все?
    Лихо.
    Спасибо.
    Удалите тему если была.
    P.s.
    Все работает.
    Chaak дело говорит
     
    #3 petryxa-mixa, 5 Mar 2012
    Last edited: 5 Mar 2012
  4. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    поторопился...
    Делаю так

    $url = $_POST['url'];
    $urlis = urlencode($url);
    echo $urlis;
    $urlisi = 'http://ru.m.wikipedia.org/w/index.php?title=Special%3ASearch&search=';
    $urls =$urlisi."".$urlis;
    а в ответ тишина...
    Из формы текст приходит в утф8.
    Пробывал функцией iconv переделывать выходили крякообразы.после просто в форме указал тип кодировки.толку ноль.
    Хотя когда в скрипте этой функцией переделывал то страница все таки окрывалась но в поле поиска были кряки.
    В чем дело не понял.
     
  5. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    $url iconv('windows-1251''utf-8''русский текст');
    $urlis urlencode($url);
    $urlisi 'http://ru.m.wikipedia.org/w/index.php?title=Special%3ASearch&search=';
    $urls $urlisi.$urlis;
     
  6. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    пробую так

    $url = $_POST['url'];
    $urlutf = iconv('windows-1251', 'utf-8', $url);
    $urlis = urlencode($urlutf);
    echo $urlis;
    $urlisi = 'http://ru.m.wikipedia.org/w/index.php?title=Special%3ASearch&search=';
    $urls =$urlisi.$urlis;
    результат в строке поиска 'хакер'
     
  7. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    У тебя на сервере то, кодировка CP-1251 скорее всего.
     
  8. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    а я не сномм не духом какая там на хостинге кодировка.
    Не казахская точно.
    Сервер в европе.
     
    #8 petryxa-mixa, 5 Mar 2012
    Last edited: 5 Mar 2012
  9. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    phpinfo() дает какая кодировка на сервере?
     
    #9 petryxa-mixa, 6 Mar 2012
    Last edited: 6 Mar 2012
  10. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Вообщем все зависит какая кодировка на сервере, какая кодировка в твоем php-скрипте(если параметры из него передавать) и какая кодировка на википедия для отображения страниц. Все данные по http-протоколу передаются только в UTF-8. К ней надо все свести.
     
  11. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    исправил ошибку в пред посте.
    В вики утф8
     
    #11 petryxa-mixa, 6 Mar 2012
    Last edited: 6 Mar 2012
  12. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    header('Content-Type: text/html; charset=utf-8');
     
  13. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    скрипт ютф8 вики отдает тоже в ютф8
     
  14. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Ну тогда просто urlencode безо всяких конвертаций. Не понимаю, это так сложно попробывать? Я ведь не телепат, что у тебя там происходит...
     
  15. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    вообще что то не врубает.
    Пишу одно слово запрос проходит(англ.) пишу другое(англ.) не проходит.русские вообще не проходят...
    Может это курл так ведет себя?
    Там фильтр что ли?
    Вот попорядку:
    пишу в поле по английски любое слово выдает ответ.
    Пишу любое другое нет ответа.
    Могу привести код курла.
    Неужеле там фильтр.
     
    #15 petryxa-mixa, 6 Mar 2012
    Last edited: 6 Mar 2012
  16. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Покажи код полностью.
     
  17. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    вот

    <?php
    header('Content-Type: text/html; charset=utf-8');
    $url = $_POST['url'];
    $urlis = urlencode($url);
    echo $urlis;
    $urlisi = 'http://ru.m.wikipedia.org/w/index.php?title=Special%3ASearch&search=';
    $urls =$urlisi.$urlis;
    $ch=curl_init();
    $user="это убрал/5.0 () ' . ' ( )";

    curl_setopt($ch, CURLOPT_URL, $urls);
    curl_setopt($ch, CURLOPT_USERAGENT, $user);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);

    $result=curl_exec($ch);
    curl_close($ch);
    ?>
     
  18. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Пустой результат может быть из-за автоматического редиректа на название статьи..
    PHP:
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
     
    1 person likes this.
  19. petryxa-mixa

    petryxa-mixa Member

    Joined:
    8 Jun 2010
    Messages:
    174
    Likes Received:
    7
    Reputations:
    0
    не помогло...
    Вообще какой то бред с этой википедией
     
  20. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Браузер поменяй и поди проспись - лучший совет, ибо у меня твой код работает нормально.