Советы по PHP
Как преобразовать строку в кодировке UTF-8 в 1251. Вот пример для PHP функции делающей прямое и обратное преобразование.
function Encode ( $str, $type )
{ // $type: 'w' - encodes from UTF to win 'u' - encodes from win to UTF
static $conv='';
if (!is_array ( $conv )){
$conv=array ();
for ( $x=128; $x <=143; $x++ ){
$conv['utf'][]=chr(209).chr($x);
$conv['win'][]=chr($x+112);
}
for ( $x=144; $x <=191; $x++ ){
$conv['utf'][]=chr(208).chr($x);
$conv['win'][]=chr($x+48);
}
$conv['utf'][]=chr(208).chr(129);
$conv['win'][]=chr(168);
$conv['utf'][]=chr(209).chr(145);
$conv['win'][]=chr(184);
}
if ( $type=='w' ) return str_replace ( $conv['utf'], $conv['win'], $str
);
elseif ( $type=='u' ) return str_replace ( $conv['win'], $conv['utf'], $str
);
else return $str;
}
Есть путь легче, использовать
$line = mb_convert_encoding($line, "Windows-1251", "UTF-8");
Но в этом случае если строка в уже в кодировке win-1251, то mb_convert_encoding заменит русские символы на знаки вопроса. Функция Encode безопасна в этом отношении и просто не тронет кириллицу.
Чтобы загрузить файл на сервер c помощью PHP необходимо:
1. Форма для присоединения файла
2. Код для обработки (в нашем случае на PHP), который загрузит файл в нужный каталог на сервере
Форма для присоединения файла (HTML-код):
<form enctype='multipart/form-data' action='upload.php' method=post>
<input type=file name="userfile" size=27>
<input type=submit value="Сохранить">
</form>
Так она будет выглядеть:
Внимание, без свойства enctype='multipart/form-data' форма не сможет работать с файлами.
Скрипт обработчик, который должен находиться в файле upload.php, т.к. в
атрибуте action формы мы указали upload.php.
Используется массив $_FILES['userfile'], так как в свойстве name мы указали userfile.
<?
$uploaddir = "d:/hst/domen/http/files/";
$filename=$_FILES['userfile']['name'];
$uploadfile = $uploaddir . $filename;
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
//chmod($uploadfile,0777); // в случае Unix хостинга возможно нужно
раскомментировать для доступности файла без использования PHPHP
?>
Если Вы пользуетесь Unix - хостингом, то после загрузки файла, чтобы он был
доступен HTTP необходимо поменять на него права. Иначе он будет доступен
только серверным скриптам, таким как PHP.
Наиболее часто используются следующие параметры массива $_FILES:
$_FILES['filename']['name']; // ----- имя загружаемого файла
$_FILES['filename']['size']; // ----- размер загружаемого файла в байтах
$_FILES['filename']['tmp_name']; // ----- имя загруженного файла во временной папке
сервера
$_FILES['filename']['type']; // ----- MIME-тип
При копировании или цитировании гиперссылка на http://perviysait.narod.ru/phpadvise.htm как источник обязательна.