[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работают строковые функции!
Footya
Всем привет!
У меня такая проблема, скинул на хастинг сайт и почему-то перестали работать строковые функции! С чем это может быть связано, в тех поддержке говорят, что типо нужно произвести какие-то настройки PHP! Но вот какие именно?!



Спустя 33 секунды (3.08.2011 - 00:10) neadekvat написал(а):
Смотря какие именно функции не работают. mb_* ?

Спустя 6 минут, 1 секунда (3.08.2011 - 00:16) Footya написал(а):
Да все!

Вот эти точно, поточу что я с ними работаю на сайте! Ну и другие мне кажется тоже, не проверял!

strtolower()
strtoupper()
explode()
ucfirst()

Спустя 7 минут, 6 секунд (3.08.2011 - 00:23) Footya написал(а):
На хостинге посоветовали порыться в "Управлениях модулями"!
Я там выбрал свой PHP v5.2.10 и там есть такая штука
Расширения модуля PHP
И ниже предоставляются эти расширения на выбор: gd, iconv, mysql, session, zlib и т.д. там много всяких, может здесь какое-то расширение надо врубить!?

Спустя 1 минута, 47 секунд (3.08.2011 - 00:25) Invis1ble написал(а):
Footya
Цитата
перестали работать строковые функции!

как ты узнал? ошибки какие пишутся?

Спустя 4 минуты, 31 секунда (3.08.2011 - 00:29) neadekvat написал(а):
Перечисленные функции входят в ядро, их нельзя отключить, насколько мне известно.

Лучше приведи текст ошибки, если таковая есть. А если нет - то ответ, с чего ты решил, что дело в функциях.

Спустя 1 минута, 16 секунд (3.08.2011 - 00:31) Footya написал(а):
YНичего не пишеться, просто не работают!

Пишу Корявое слово, пропускаю его через strtolower() , пофиг, остается такое же корявое!
А на локальном все нормально работает!

Спустя 3 минуты, 43 секунды (3.08.2011 - 00:34) Invis1ble написал(а):
neadekvat
Цитата
Перечисленные функции входят в ядро, их нельзя отключить, насколько мне известно

можно, через php.ini

Спустя 2 минуты, 44 секунды (3.08.2011 - 00:37) neadekvat написал(а):
Цитата (Footya @ 3.08.2011 - 01:31)
Пишу Корявое слово, пропускаю его через strtolower() , пофиг, остается такое же корявое!

А какое оно должно стать? К тому же, скрипт ведь не прекращает работу - значит, с функцией все ок.

Цитата (Invis1ble @ 3.08.2011 - 01:34)
можно, через php.ini

Это какое же расширение надо отключить, интересно?

Спустя 3 минуты, 17 секунд (3.08.2011 - 00:40) Footya написал(а):
Цитата
А какое оно должно стать?

Оно должно встать в нижний реестр, но это все фигня, я сейчас там врубил модуль mbstring и заработала функция strtolower, но explode по прежнему не работает!

Спустя 1 минута, 24 секунды (3.08.2011 - 00:42) neadekvat написал(а):
Цитата (Footya @ 3.08.2011 - 01:40)
я сейчас там врубил модуль mbstring и заработала функция strtolower

wtf? mbstring и strtolower никак не связаны, что, правда, не касается функции mb_strtolower и иже mb_*, о коих я спросил еще в первом своем посте.

Спустя 19 секунд (3.08.2011 - 00:42) Invis1ble написал(а):
neadekvat
Цитата
А какое оно должно стать? К тому же, скрипт ведь не прекращает работу - значит, с функцией все ок.

Цитата
Это какое же расширение надо отключить, интересно?

http://www.php.net/manual/en/ini.core.php#...sable-functions
php.ini
disable_functions = 'strtolower'

test.php
<?php
error_reporting(E_ALL | E_STRICT);
echo strtolower('HELLO'); // Warning: strtolower() has been disabled for security reasons in .....

Спустя 1 минута, 55 секунд (3.08.2011 - 00:44) Footya написал(а):
ХАаааа, еще обнаружил такую вещь, что работают эти функции только с латинскими символами, а с кирическими нет!

Спустя 1 минута, 18 секунд (3.08.2011 - 00:45) Invis1ble написал(а):
Footya
для работы с кириллицей и предназначены ф-ции mb_*

Спустя 27 секунд (3.08.2011 - 00:46) neadekvat написал(а):
Invis1ble, как часто тебе попадался хостинг с подобными настройками? Надо быть клиническим идиотом, чтобы отключать подобные функции.
Все "страшное", что обычно нужно ограничить, делается отключением соответствующих библиотек или настроек типа allow_url_fopen.
Имхо, автор нас путает, сознательно или нет.

Спустя 1 минута, 30 секунд (3.08.2011 - 00:47) Invis1ble написал(а):
neadekvat
речь идет не о частоте, а о возможности впринципе

Спустя 1 минута, 58 секунд (3.08.2011 - 00:49) Footya написал(а):
Да че мне вас дурить, мне больше заняться нечем в час ночи?
Я говорю не рабоет, на полном серьезе, может есть еще что-то?!!

Спустя 9 минут, 3 секунды (3.08.2011 - 00:58) Footya написал(а):
А если использовать функции mb_, а не обычные строковые функции, они будут работать с латынью?!

Спустя 1 минута, 10 секунд (3.08.2011 - 00:59) Invis1ble написал(а):
да, только кодировку не забудь указать

Спустя 3 минуты, 13 секунд (3.08.2011 - 01:03) Footya написал(а):
Цитата
да, только кодировку не забудь указать

Где это надо сделать?!

Спустя 34 секунды (3.08.2011 - 01:03) Footya написал(а):
Я еще не нашел функции mb_explode(), такая вообще существует?!

Спустя 1 минута, 33 секунды (3.08.2011 - 01:05) Footya написал(а):
И не помешала бы еще фунция mb_ucfirst(), ну или какая-нибудь заменяющая ее!

Спустя 3 минуты, 59 секунд (3.08.2011 - 01:09) Invis1ble написал(а):
Footya
Цитата
Я еще не нашел функции mb_explode(), такая вообще существует?!

нет
Цитата
И не помешала бы еще фунция mb_ucfirst(), ну или какая-нибудь заменяющая ее!

тоже нет такой
Цитата
Где это надо сделать?!

второй аргумент, RTFM

Спустя 53 минуты, 48 секунд (3.08.2011 - 02:02) Nikitian написал(а):
Попробуйте в начале скрипта установить локаль:

setlocale(LC_CTYPE, 'CP1251');

Спустя 7 часов, 43 минуты, 36 секунд (3.08.2011 - 09:46) neadekvat написал(а):
Nikitian, эм, а что, у нас в локаль уже кодировку можно писать? Обычно как-то ru_Ru, ru_RU.cp1251 и пр.

Спустя 39 минут, 21 секунда (3.08.2011 - 10:25) Footya написал(а):
Цитата
setlocale(LC_CTYPE, 'CP1251');


Все равно не работают!

АААААаааа, что делать, что делать!??? Есть еще какие-нибудь идеи, может что-то кто-нибудь вспомнит?!

Спустя 28 минут, 12 секунд (3.08.2011 - 10:54) linker написал(а):
Не работает оно потому, что на хостинге стоит UTF-8, а у тебя скорее всего винда с WINDOWS-1251. Стандартные функции для работы со строками криво работают с символами, для которых используют двухбайтовые кода. Некоторые стандартные функции имеют аналоги в расширении mbstring, для остальных можно использовать regexp с модификатором u. А explode() вообще пофигу на кодировку. Пример неработающего кода в студию.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.