Рекомендованные сообщения

Народ каким текстовым редактором можно изменять кодировки php файлов? раньше он был у меня, забыл название ;) Просто блокнот не предлагать :))) Заранее спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне очень нравится Блокнот++. Notepad++. Бесплатный, красивы, удобный. Ну и с кодировками проблем нет. Хотя кодировку можно изменить и обычным. Чем он не устраивает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

<?php 

$line = system('ping ya.ru', $retval);
//convert_cyr_string($retval, a, w);
echo "<br>".$retval."<br>"; //.$line;


?>

Суть вопроса:

Windows Vista Ultimate, русскоязычная. Задача: получить данные из консоли в приемлимом для отображения виде.

chcp в консоли не спасает, варианты с сохранением документа в 866-кодировке (дефолтовая в консоли, превед DOS) так же не проходят

Результат работы скрипта:

ЋЎ¬Ґ­ Ї ЄҐв ¬Ё б ya.ru [213.180.204.8] б 32 Ў ©в ¬Ё ¤ ­­ле: ЋвўҐв ®в 213.180.204.8: зЁб«® Ў ©в=32

и так далее

Энтузиазма хватило чтобы сменить язык системы, что приводит к "кракозябрам" в русскоязычном софте, так что тоже не вариант.

Устроил бы вариант англофикации cmd, если кто-нибудь в курсе реализации этого процесса..

Изменено пользователем funtych

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
<?php 

$line = system('ping ya.ru', $retval);
//convert_cyr_string($retval, a, w);
echo "<br>".$retval."<br>"; //.$line;


?>

На сколько я понимаю, текст выводится на страницу. Попробуй сменить кодировку в браузере. Посмотри что будет с текстом при изменении регистра, например echo strtolower($retval);

 

У меня стоит "виста бизнес сп1 рус", апач2.2 пхп5, вот что выводит:

Обмен пакетами с ya.ru [213.180.204.8] с 32 байтами данных: Ответ от 213.180.204.8: число байт=32 время=13мс TTL=59 Ответ от 213.180.204.8: число байт=32 время=14мс TTL=59 Ответ от 213.180.204.8: число байт=32 время=12мс TTL=59 Ответ от 213.180.204.8: число байт=32 время=12мс TTL=59 Статистика Ping для 213.180.204.8: Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь) Приблизительное время приема-передачи в мс: Минимальное = 12мсек, Максимальное = 14 мсек, Среднее = 12 мсек

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И документ должен быть в 866-й кодировке, и в голове страницы должно быть указано то, что она в 866-й. Апач помоему тоже отдает заголовки с указанием кодировки... Так что легче mb_string заюзать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

zed, документ не обязательно в 886-ой хранить...

и лучшая библиотека по кодировкам всё же iconv

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

PHP

Как можно автоматически создать переменную, содержащую в своем имени значение другой переменной? Т.е. если есть переменная $file = 'user', то конструкция типа $$file = 'example' приведет к появлению переменной $user = 'example'. А нужно чтобы к автоматически генерируемому названию переменной добавлялся бы суффикс/префикс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну попробуй чё-нить типа $($file."suffix") Правда не могу гарантировать что это будет работать потому что не силён в PHP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

zed, ну а что тебе мешает, до того, как сделать $$variable, к этому самому $variable приделать суффикс, типа:

$suffix = '_suffix';
$variable = 'anyvar'.$suffix;
$$variable = 'value';
print $anyvar_suffix;

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

 

либо смотри в сторону массивов и функции extract().... правда там он добавляет префикс...

Изменено пользователем _ex_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

_ex_ Что мешает. :rolleyes: Компактность кода, красота, поглядывание на более профессиональный уровень.

 

IRQ пришел к конструкции вида ${"prefix_$file"}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кто подскажет по настройке MySQL? В файле конфига есть такие строки:

 

[mysql]

 

default-character-set=cp1251

 

[mysqld]

port=3306

skip-character-set-client-handshake

 

default-character-set=cp1251

character-set-server=cp1251

collation-server=cp1251_general_ci

 

sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

 

Старница на PHP просто обновляет строковые данные в базе значениями из формы (POST). Я думал надо использовать escape-функции для запроса но сервер сам это выполняет. То есть если я ввожу в строку например ' то запрос автоматически добавялет \ перед кавычкой. Собственно вопрос - стоит-ли так оставить и от чего это зависит? Почитал мануал но не понял. Написано что зависит от characterset но не понял какого. Не понял что влияет на этот auto-escape. И стоит-ли оставлять аткое поведение? Вроде кажется удобным что сервер сам escape-ит спецсимволы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я обычно в таких ситуациях произвожу дебагинг, слежу на каком этапе как выглядят данные, было дело что как то апач эскейпил...

 

Да точно так и было, я юзал mod_rewrite, и соответственно запросы тоже шли через реврайт, там есть опция [NE] - no URI escaping of output, но как ей не крутил она никак не влияла, все время апач сам эскейпил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я мало занимался такими делами поэтому хз даже как там Апач. В настройках вроде не подключен rewrite. У меня всё руками настроено. Соответственно настройки Apache правил руками и там этот мод не подключен. Может и MySQL сам escape-ит. Впрочем с другой стороны удобно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм у меня и правда включено magic_quotes_gpc. Попробую отключить и посмотреть что изменится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Люди, подскажите, как в РНР из текстового поля записать текст в файл?

 

Уже знаю))) Вопрос отменяется.

Изменено пользователем Ангeлочек

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Решил сделать сайт на 2 языка: русский и английский.

 

Есть идеи сделать автоматическое определение языка, а так же выбор языка пользователем. Далее брать данные из сессий\БД\куков. Английский язык реализовать в виде _http://mysite.ru/index.php?lng=en (мона конечн с реврайтами).

Однако я не уверен, что гугл хорошо просканит сайт на 2 языка. Или мое предположение ошибочно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

лучше реврайтом, типа:

site.com/en/

site.com/ru/

site.com/de/

и всё оке будет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не, ну реврайты самом собой. Я привел те ссылки для примера. Как можно реализовать ;)

Наверн так и буду делать :rtfm:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

wext, просто как-то было неуверенно было сказано про реврайт, поэтому я и акцентировал на нём внимание)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
this.roads = new Array();

this.roads[0] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 0

this.roads[1] = new Array('','','', 1,'','','', 2, 2, 1, 1, 1, 2,'','','','','','','','','','');// 1

this.roads[2] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 2

this.roads[3] = new Array('', 1,'','', 2,'', 3, 1,'','','', 2, 2, 2,'','','','','','','','','');// 3

this.roads[4] = new Array('','','', 2,'', 2, 2,'','','','','','', 3,'','','','','','','','','');// 4

this.roads[5] = new Array('','','','', 2,'', 2,'','','','','','', 2, 3, 3,'','','','','','','');// 5

this.roads[6] = new Array('','','', 2, 2, 2,'', 2,'','','','','','','', 2,'','','','','','','');// 6

this.roads[7] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 7

this.roads[8] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 8

this.roads[9] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 9

this.roads[10] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 10

this.roads[11] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 11

this.roads[12] = new Array('','','','','','','','','','','','','','','','','','','','','','','');// 12

this.roads[13] = new Array('','','', 2, 2, 3,'','','','','','', 2,'','','','','','','','','', 1);// 13

this.roads[14] = new Array('','','','','', 3,'','','','','','','','','', 2,'','','','','','','');// 14

this.roads[15] = new Array('','','','','', 3, 3,'','','','','','','', 2,'','','','','','','','');// 15

this.roads[16] = new Array('','','','','','','', 3,'','','','','','','','','', 3,'','','','','');// 16

this.roads[17] = new Array('','','','','','','','','','','','','','','','', 3,'', 4, 4,'','','');// 17

this.roads[18] = new Array('','','','','','','','', 2, 2,'','','','','','','', 4,'', 3,'','','');// 18

this.roads[19] = new Array('','','','','','','','','', 2,'','','','','','','', 2, 2,'','', 2,'');// 19

this.roads[20] = new Array('','','','','','','','','','','','','','','','','','','','','', 4,'');// 20

this.roads[21] = new Array('','','','','','','','','', 2, 2,'','','','','','','','', 2, 2,'','');// 21

this.roads[22] = new Array('','','','','','','','','','','','','', 4,'','','','','','','','','');// 22

 

Данный массив создается в JavaScript, помогите сделать точно такой же массив в PHP и к примеру вывести 4-ое значение у this.roads[13]

Изменено пользователем Кэр Лаэда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

$roads[0] = array('','','','','','','','','','','','','','','','','','','','','','','');// 0
$roads[1] =  array('','','', 1,'','','', 2, 2, 1, 1, 1, 2,'','','','','','','','','','');// 1 
......
$roads[13] = array('','','', 2, 2, 3,'','','','','','', 2,'','','','','','','','','', 1);// 13
......
$roads[20] = array('','','','','','','','','','','','','','','','','','','','','', 4,'');// 20
$roads[21] = array('','','','','','','','','', 2, 2,'','','','','','','','', 2, 2,'','');// 21
$roads[22] = array('','','','','','','','','','','','','', 4,'','','','','','','','','');// 22

print join('', $roads[13]);

 

джоин правда, сейчас заметил, неверное решение, ибо я не понял задачи) что значит "вывести 4-ое значение у this.roads[13]"?

Изменено пользователем _ex_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
$roads[0] = array('','','','','','','','','','','','','','','','','','','','','','','');// 0
$roads[1] =  array('','','', 1,'','','', 2, 2, 1, 1, 1, 2,'','','','','','','','','','');// 1 
......
$roads[13] = array('','','', 2, 2, 3,'','','','','','', 2,'','','','','','','','','', 1);// 13
......
$roads[20] = array('','','','','','','','','','','','','','','','','','','','','', 4,'');// 20
$roads[21] = array('','','','','','','','','', 2, 2,'','','','','','','','', 2, 2,'','');// 21
$roads[22] = array('','','','','','','','','','','','','', 4,'','','','','','','','','');// 22

print join('', $roads[13]);

 

джоин правда, сейчас заметил, неверное решение, ибо я не понял задачи) что значит "вывести 4-ое значение у this.roads[13]"?

Вывести цифру 2 которая в 13 массиве.

я уже разобрался спс)

Мне бы щас другое)

Как сделать проверку, если цифра есть то вывести, если пусто то написать скажем пусто

К примеру: echo $roads[13][4]; - выдаст "2", а вот если echo $roads[13][2]; - выдаст пусто, то пусто заменить на слово нету)

Изменено пользователем Кэр Лаэда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

if( empty($roads[13][2]) ) print 'нема';

 

з.ы.: во тупанул с 4-ым значением xD

Изменено пользователем _ex_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
if( empty($roads[13][2]) ) print 'нема';

 

з.ы.: во тупанул с 4-ым значением xD

Бывает) Спасибо)

P.S. а я вот так сделал: if ($roads[13][2] == '') {echo "нема";}

Изменено пользователем Кэр Лаэда

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

имеет право на жизнь такой вариант))

можно ещё что-нибудь типа:

print (empty($roads[13][2])) ? 'нету' : $roads[13][2];

от нужд, и как, где будет применяться, зависит)

Изменено пользователем _ex_

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошую книгу по php подскажите

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

^_^GOD, Л. Аткинсон, З. Сураски "PHP5 Библиотека профессионала". Издательство "Вильямс"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вопрос: что за проблема с кодировкой (за место русских букв знаки вопросов ), перенос базы с http://forum.touch-diamond.ru/ на http://forumhtc.ru/ , может почитать что или кто может взятся ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

$RM, это UTF-8... Решить можно проблему прописав после соединения с БД следующее:

mysql_query("SET NAMES utf8");

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас