Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2019, 07:00   #1
KinBau
 
Регистрация: 05.01.2019
Сообщений: 5
По умолчанию Обработка массивов

Здравствуйте, уважаемые!
Изучаю PHP
Вопрос следующего порядка.
Никак не могу победить одну проблему, связанную с кодировкой.
Если кто подскажет решение проблемы, то буду весьма признателен.
Итак, предположим есть задача: через форму передать строку, преобразовать ее в массив и потом произвести те или иные действия в полученном массиве (не важно какие, сортировка, выделение отдельных элементов массива, создание на базе данного массива нового, не суть).
Но предварительно производится проверка переданной строки, что в ней содержатся именно буквы кириллицы.
И все замечательно на начальном этапе.
Вот код основного файла php:
<?php
//header('Content-Type: text/html; charset=ANSI');
require "index.html";
echo '<br>'.$_REQUEST['myarr']."<br>";
$vararr = explode(" ", $_REQUEST['myarr']);
foreach($vararr as $v) {
echo ord($v)."<br>";
}
?>
Методом require вызывается форма, нарисованная на html:
<html>
<head>
<title>Работа с массивами</title>
</head>
<body>
<script language="javascript">
function checkdata() {
var rescheck = true;
//Проверка на заполненность данными поля данных
if(document.myform1.myarr.value.len gth == 0) {
rescheck = false;
}
//Если поле заполнено, то приступить к обработке созданной строки данных
if(rescheck) {
document.myform1.submit();
}
//Выдать предупреждающее сообщение
else {
alert(rescheck);
}
}
</script>
</body>
<form action='index.php' method='post' name='myform1'>
<fieldset>
<legend>Данные массива</legend>
<label for='lbl1'>Значения массива</label>
<br>
<input type='text' name='myarr' id='Value1'>
<br>
</fieldset>
<input type='button' name='btncheck' value='Обработать' onClick='checkdata()'>
<input type='reset' name='btnreset' value='Очистить'>
</body>
</html>
И вот тут начинается засада.
Используемый редактор кода Notepad++.
Если установить изначально в редакторе кодировку UTF-8 c BOM, то на экране тексты килиллицы отображаются корректно, но при этом не работает функция PHP ord(). А я знаю с UTF она не дружит для кириллицы.
Если использовать кодировку ANSI, то после возвращения на страницу через метод submit() после нажатия на кнопку искажается основной текст, написанный на кириллицы.
Всю голову себе сломал, как правильно справляться с этой проблемой.

Последний раз редактировалось KinBau; 26.01.2019 в 19:49. Причина: Устранение синтаксических и лексических ошибок
KinBau вне форума Ответить с цитированием
Старый 27.01.2019, 09:39   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

надо без BOM все файлы, кодировку заголовка тоже utf8
все должно быть в одной кодировке и без BOM и будет вам счастье
ADSoft вне форума Ответить с цитированием
Старый 28.01.2019, 11:12   #3
KinBau
 
Регистрация: 05.01.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
надо без BOM все файлы, кодировку заголовка тоже utf8
все должно быть в одной кодировке и без BOM и будет вам счастье
Да не будет тут счастья, ибо в последней версии Notepad++ нет варианта кодировки без BOM.
Еще версии имеются?
KinBau вне форума Ответить с цитированием
Старый 28.01.2019, 11:16   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

В последних версиях он просто называется UTF-8. На форуме разработчики отввечали. Да и редакторов дофига...
p51x вне форума Ответить с цитированием
Старый 30.01.2019, 17:16   #5
KinBau
 
Регистрация: 05.01.2019
Сообщений: 5
По умолчанию

В последних версиях Notepad++ есть кодировка UTF-8 и кодировка UTF-8 c BOB. Последняя работает с кириллицей корректнее.
Что касается уже имеющихся ответов, так дайте, любезный, конкретно ссыслочки, где подобные вопросы обсуждались уже, ибо искать в общем потоке сложновато, либо подскажите, как эргономично осуществлять поиск на данном форуме.
KinBau вне форума Ответить с цитированием
Старый 31.01.2019, 09:11   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Цитата:
Сообщение от KinBau Посмотреть сообщение
Notepad++ есть кодировка UTF-8
используйте именно ее везде
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка массивов с++ ezu Помощь студентам 2 05.03.2016 15:08
Обработка массивов на С Просящий Помощь студентам 2 09.11.2012 12:38
Обработка массивов! Bohdan1993 C# (си шарп) 1 23.10.2012 10:15
обработка массивов Pepsik Помощь студентам 4 12.07.2011 08:33
обработка массивов vvioleta Помощь студентам 1 14.11.2009 13:10