Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кодировка url-а и windows-1251.PHP

536
05 декабря 2009 года
alex-kniaz
382 / / 07.08.2008
Файл cs.php
Код:
<?php

$subTitle="Каталог статей";

$filter=$_GET['filter'];

$f=fopen('csList.lst','r');

$action=$_GET['action'];

switch($action){

default : {
    while(!feof($f)){
        $l=trim(fgets($f));
        if($l=='category'){
            $content.="<div class=\"category\">";
            $categoryName=fgets($f);
            if (($filter==$categoryName) || ($filter=='')){
                $content.="<div class=\"category_title\"><a href=\"cs.php?filter=$categoryName\">$categoryName</div>";
                while(($l=trim(fgets($f)))!='/category'){
                    $title=fgets($f);
                    $url=fgets($f);
                    $content.="<a href=\"page.php?url=$url\">$title</a>";
                }
                $content.="</div>";
            }
        }
    }
}
}
fclose($f);

if($filter){
    $content="<a href=\"cs.php\">Смотреть все категории</a>";
}

include "design.php";
?>


Файл design.php
Код:
<html>
    <head><meta http-equiv="Content-type" content="text/html; charset=windows-1251" />
        <title>Никому не известный сайт. <?php echo @$subTitle; ?></title>
        <script type="text/javascript" src="./js/jquery-1.3.2.js"></script>
        <script type="text/javascript" src="./js/main.js"></script>
    <link rel="stylesheet" href="./main.css" />
    </head>
    <body>
        <div id="title">Никому не известный сайт. <?php echo @$subTitle; ?></div>
        <div id="menu">
        <img src="./img/menu/stalker.ico" height="32" width="32" &#111;&#110;click="fm();" />
        <p id="fastMenu">
        <a href="gb.php">Гостевая книга</a>
        <a href="cs.php">Каталог статей</a>
        <a href="/forum/">Форум</a>
        </p>
            <h3>Переход</h3>
            <div>
                Переход
            </div>
            <h3>Каталог статей</h3>
            <div>
                Катал статей
            </div>
            <h3>Форум</h3>
            <div>
                Форум
            </div>
        </div>
        <div id="content">
        <?php echo @$content; ?>
        </div>
        <div id="banners">
       
        </div>
    </body>
</html>


Файл csList.lst
 
Код:
category
Хакинг

Создание вирусов на bat
virus1
/category






Собственно все в кодировке Windows-1251
При запросе просто cs.php должен вывести все статьи а инече - только из опр. категорий.

В cs.php это так:
 
Код:
...
$filter=$_GET['filter'];
...
$categoryName=fgets($f);
if (($filter==$categoryName) || ($filter=='')){
//Вывод статей
...
}
...

Т.е. если без фильтрации то просто даётся cs.php
А с фильтрацией - cs.php?filter=фильтр

Соответственно условие в первом случае это : filter==''
А во втором (с фильтром) - это : cs.php?filter=$categoryName
Но оно не выполняется, т.е. полученная из windows 1251-го файла строка отличается от внешне идентичной в урле. Что делать? (Всмысле как перекинуть из windows-1251- в урловую кодировку или наоборот)?
4
06 декабря 2009 года
mike
3.7K / / 01.10.2002
Используй функцию [phpdoc]urlencode[/phpdoc]:

 
Код:
$content.="<div class=\"category_title\"><a href=\"cs.php?filter=".urlencode($categoryName)."\">".htmlspecialchars($categoryName)."</div>";
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог