Архив метки: Php

Импорт больших файлов в phpmyadmin

Если в импорте в phpmyadmin стоит ограничение “(Максимальный размер: 2,024 КБ)”, то его можно увеличить изменив настройки в php.ini:

; Максимальный размер данных POST, который PHP сможет принять.
post_max_size = 32M

; Максимальный размер закачанного файла
upload_max_filesize = 32M

Также можно изменить:

в конф файле phpMyAdmin (config.inc.php)
$cfg[‘ExecTimeLimit’]    = 0;

Ошибка 500 в OpenX 2.8.5

После установки рекламной системы openx 2.8.5, при заходе в админку появлялась ошибка 500.

В логах записывалась следующая ошибка:

[Wed Jun 30 20:04:34 2010] [error] [client **.***.**.***] SoftException in Application.cpp:227: Directory “/h/turby/htdocs/openx/www/admin/plugins/oxMarket” is writeable by group

Решилась проблема установкой прав 711, на папку:

htdocs/openx/www/admin/plugins/oxMarket

Продолжаю дальше исследовать openx.

Конвертация строки из utf-8 в win-1251 на PHP

Для конвертации на php строки из utf-8 в windows-1251 и наоборот, можно использовать следующую функцию:
$text = iconv(‘utf-8’, ‘windows-1251’, $text);
если необходимо обратное действие, то:
$text = iconv(‘windows-1251’, ‘utf-8’, $text);

Описание функции iconv:
string iconv ( string from_kodirovka, string to_kodirovka, string str )
Производит преобразование кодировки символов строки str из начальной кодировки from_kodirovka в конечную to_kodirovka. Возвращает строку в новой кодировке, или FALSE в случае ошибки.

Если добавить //TRANSLIT к параметру out_charset будет включена транслитеризация. Это означает, что вслучае, когда символа нет в конечной кодировке, он заменяется одним или несколькими аналогами. Если добавить //IGNORE, то символы, которых нет в конечной кодировке, будут опущены. Иначе, будет возвращена строка str, обрезанная до первого недопустимого символа.

В случае, если ваш хостинг не поддерживает iconv, для конвертации из utf-8 в win-1251 и наоборот можно использовать следующие функции:

function utf8_to_cp1251($s) {
$tbl = $GLOBALS['unicode_to_cp1251_tbl'];
$uc = 0;
$bits = 0;
$r = "";
for($i = 0, $l = strlen($s); $i < $l; $i++) {
$c = $s{$i};
$b = ord($c);
if($b & 0x80) {
if($b & 0x40) {
if($b & 0x20) {
$uc = ($b & 0x0F) << 12;
$bits = 12;
}
else {
$uc = ($b & 0x1F) << 6;
$bits = 6;
}
}
else {
$bits -= 6;
if($bits) {
$uc |= ($b & 0x3F) << $bits;
}
else {
$uc |= $b & 0x3F;
if($cc = @$tbl[$uc]) {
$r .= $cc;
}
else {
$r .= '?';
}
}
}
}
else {
$r .= $c;
}
}
return $r;
}

Читать далее