PHP - разные данные в функции при вставке exit перед/после return

12
Progr@mmer\.
На сайте с 14.10.2007
Offline
44
1324

Балуюсь с одним скриптом (не очень хочу говорить что это за скрипт) - подстраиваю его "под себя". Чуть-чуть изменил одну ключевую функцию и напоролся на очень любопытный "косячёк":

при выводе результата функции получаю странные вещи: "З. З. З. З." или "У. У. У. У.":


function blabla() {
// тут функция работает с переменной текста, которая стоит в global и ретурнит его:
return $text;
}
$t = blabla();
exit($t);
// получаю:
// З. З. З. З.

А если сделать так, то будет получет нормальный текст:


function blabla() {
// тут функция работает с переменной текста
exit($text);
// получаю:
// текст, который должен получится
return $text;
}

Безуспешно пробовал устанавливать локаль внутри и вне функции:


setlocale (LC_CTYPE, 'ru_RU');

Ставил вывод ошибок - их нет =(

Уже не знаю, как ещё колдовать... Может у кого-то есть идеи?

Progr@mmer\. добавил 21.06.2008 в 02:07

P.S.: скрипт коммерческий, не бесплатный. Выложить сюда исходный код не могу.

Вашей девушке не хватает романтики? Черпните её на сайте «Я Люблю Романтику» (http://iloveromantics.ru/). Романтический форум (http://forum.iloveromantics.ru/) для отдыха от нудной работы.
webinteger
На сайте с 13.10.2007
Offline
110
#1

не совсем понятно, но может так

function blabla() {

global "переменной текста";

// тут функция работает с переменной текста, которая стоит в global и ретурнит его:

return $text;

}

$t = blabla();

exit($t);

> PHP & mySQL написание и доработка скриптов Page 1 (/ru/forum/173281) Page 2 (/ru/forum/377616)
Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#2

Да, так и есть. Но это ничего не меняет (я же написал, что переменная в global).

У кого-нибудь есть соображения как это решить? А то я уже второй вечер "как рыба об лед" бьюсь. :(

[Удален]
#3

может при ретерну у тебя выводится в хтмл странице кусок скрипта. а когда exit делаешь, то получаешь, что пустая страница, и браузер сам выбирает кодировку твоей строки. а в хтмл странице стоит плохая кодировка. я думаю что такое смешивание букв З=У возможно при смене кодировки с сп1251 например на кои-р или тп. посмотри кодировки.

psylosss
На сайте с 23.12.2005
Offline
126
#4

var_dump(blabla()); для первого варианта что показывает?

Веб-разработка. Сложные проекты. Проектирование. Проект-менеджмент. Стартапы.
DI
На сайте с 03.01.2007
Offline
123
#5

setlocale (LC_CTYPE, 'ru_RU'); - чаще всего строка "ни о чём", надо задавать более конкретно:

setlocale (LC_CTYPE, 'ru_RU.CP1251');

К тому же, сервак может банально не иметь всех необходимых кодировок.

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#6
psylosss:
var_dump(blabla()); для первого варианта что показывает?


string(6) "У. У."
DenIT:
setlocale (LC_CTYPE, 'ru_RU.CP1251');

не помогло...

bearman, браузер выбирает правильную кодировку.

[Удален]
#7

покажи кусок кода, будем спорить, а то на манной каше гадать не интересно. или в личку код. раз боишься что упрут.

Progr@mmer\.
На сайте с 14.10.2007
Offline
44
#8
bearman:
покажи кусок кода, будем спорить, а то на манной каше гадать не интересно. или в личку код. раз боишься что упрут.

выдернул эту функцию и все глобальные переменные и засунул в другой файл. Всё отлично работает... Значит не в функции дело. Буду разбираться

psylosss
На сайте с 23.12.2005
Offline
126
#9

попробуйте сделать так:

вместо

global $var;

написать

$var=$GLOBALS['var'];

psylosss добавил 21.06.2008 в 22:06

блин, ну вы же Progr@mmer, али хто? Отлаживайте... Любым способом: от дедовских var_dump до пошагового дебага.

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#10

Сделал так

<?

$vasy="Текст ляляы";
function blabla() {
global $vasy;
$text=$vasy;
return $text;
}
$t = blabla();
exit($t);
?>

мне вывелся текст: Текст ляляы

как дома так и сервере в интернете.

Мож косяк в серваке и установленными на нём модулями для PHP?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий