AlexHog
-
Posts
20 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Posts posted by AlexHog
-
-
XML-парсер
in PHP
Добрый день.
Существуют ли в php функции парсинга XML?
Есть XML-файл данных, из него нужно построить модуль-навигатор по сайту - простой набор ссылок на подразделы.
Во флэше я это сделал (example.rar 2кб), а как сделать на php? Только через функцию чтения файла и построчного его разбора?..
-
Добрый день.
Скачал книжку в таком интересном формате, и мой Tom Reader с ним не справляется.
Посоветовали WinDjView - он только под XP. А мне под 98 надо...
Подскажите
-
Мда... спасибо))
скачал все, что были доступны; с fnt, к сожалению, не умеет работать ни одна...
вообще, интересно: fnt и fon называют виндосовскими файлами шрифта, - а Винда их из папки Fonts решительно не читает
-
Добрый день.
Делаю флешку по игре, в ней очень желателен оригинальный шрифт игры. Он есть, но формата .fnt, тогда как флеш позволяет встраивать только TrueType шрифты.
Подскажите, можно ли сконвертировать .fnt => .ttf, и каким софтом (желательно легкодоступным, задача разовая, тратиться на диск неохота).
-
вообще советую отказаться от xml формата. JSON удобнее
Боюсь, про это я вообще ничего не слышал
Вот тут кодировку тоже попробуй менятьВ xml?
в этом случае у меня вообще все ноды пустые, даже числовые/англоязычные. Почему-то XML требует непременно UTF-8...
-
О-о-о... /офигевает/
так тоже можно?...
PS. поставил последнюю Оперу, попробовал, все равно не получилось =(
ответ Оперы списал в файл, поменял в нем кодировку. Судя по ответу - данные, передаваемые серверу, либо теряются, либо неправильно читаются. Передается русский текст из трех полей ввода: IE работает как надо, Опера же читает и возвращает символы в UTF-8, и никак переубедить ее пока не удалось
-
Я же через XML передаю.
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'; -
В заголовках кодировку указываете?
Так? указываю.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Название</title></head>Она совпадает с кодировкой страницы?"Вид => Настройки => Кириллица(Windows)"? Да.
-
Добрый день.
Проблема следующая: пхп-скрипт генерирует XML, в один из узлов кладет русский текст, перекодив предварительно из Win-1251 в UTF-8, и отдает яваскрипту. Js принимает и парсит полученный XML и вполне себе корректно с ним работает.
То есть я в IE6 вижу вс? нормально. Но люди под Оперой жалуются, что видят utf-овские кракозябры... Отчего это может быть и как это исправить?
-
У меня денвер, версия 4.4.4. и надстройка 5.0.4.
В четверке iconv не работает; включил в php.ini - бестолку. В пятерке - работал изначально.
Если ты видишь этот текст, с заполненным и закрытым - значит, скрипт работает правильно, xml валидный... вероятно, неправильно обрабатывается уже в яваскрипте.
Мой рабочий пример - http://slil.ru/24440972
-
Так...
у меня сработал такой скрипт (но я работаю с мускулом):
<?php
include "config.php";
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$name = 30;
$query = mysql_query("SELECT po_ind, city FROM postoff WHERE po_ind LIKE '$name'");
while ($row = mysql_fetch_object($query))
{
$text = "Это индекс города, " . $row->city . "!";
echo iconv("windows-1251", "utf-8", $text);
}
echo '</response>';
include "out.php";
?>То есть, во первых, не забыть про iconv, во-вторых при выборке из базы указывать и тот параметр, по которому она производится =) Без него выборка будет нулевой.
И тестируйте сначала "голый" пхп; если он отдаст правильный xml - только тогда переходите к аяксу...
PS: да, в денвере с пхп-4.4.4 iconv почему-то не работает. Хотя по мануалу - должен с 4.0.5.
Php_iconv.dll включен.
-
Ну... с первого взгляда - вы дважды задаете header и response =) До обращения к базе и после.
дома посмотрю подробней...
-
_dreamer
спасибо )) интересный способ, никогда не пользовался побайтным редактированием) попробую.
Интересных проектов, увы, пока нет... тренируюсь только...
В общем, проблема решена - Wordpad сохраняет в UTF-16, т.е. на каждый символ по два байта.
теперь я прогоняю отдаваемый скриптом текст через перекодировку -
$bufer2 = iconv ('cp1251', 'utf-8', $bufer);
- и все работает.
-
спасибо ))
В общем, похоже моя проблема в самом xml. Разобрал еще несколько примеров из книги - там, где его нет, все работает отлично.
Буду читать.
http://a-center.ru/sands/ajax/index.html - тест прогон на хостере твоего кода в моей редакции (исходники http://slil.ru/24419370)Спасибо, работает и по вашей ссылке, и на локалке =)
Посмотрел на quickstart.php - у вас перекодированы только русские символы, вс? остальное без изменений.
Когда я сохраняю свой php через Вордпад "как документ Unicode" - у меня получается такая вот лабуда:
Естественно, такой пхп отказывается работать... то есть вообще не воспринимается системой и не обрабатывается как пхп.
Чем можно корректно сохранять в UTF-8?
а про агаву ничего хорошего увы сказать не могу, сами съезжаем...Угум...
не подскажете бесплатный хостинг с php и mysql?
я пока нашел только 100mb.com, но он англоязычный.
-
Sectronix
404 not found =(
Yarik Voronov
Под генерацией, я подразумевал создание XML документа библиотеками РНР, когда для разбора и анализа требуется создать DOM структуру XML документа, а не просто выдать его методом echo, printМожно об этом подробнее? я правильно понял, что создание xml через echo - некорректный способ?
-
Здравствуйте.
Видимо, проблема в моем браузере - в том, как он воспринимает приходящие xml-ы.
Сделал след.код:
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$name = "Имя";
echo 'Здравствуйте, ' . $name . '!';
echo '</response>';
?>Адрес скрипта (сохранен в кодировке win1251) - http://manuke.h18.ru/xml_test1.php
Что вижу -
Вариант скрипта - без первой строчки, хедера: http://manuke.h18.ru/xml_test1a.php
Вижу -
То есть тег response заполнен и закрыт, но заполнен абракадаброй.
Первый вариант в кодировке Unocode: http://manuke.h18.ru/xml_test2.php
Что вижу -
Второй вариант в кодировке Unicode: http://manuke.h18.ru/xml_test2a.php
Вижу то же самое.
Результаты одинаковые и в Денвере, и на хостинге Агавы.
Win98, IE6.0 SP1
Как это исправить?
update: попробовал зайти по опубликованным ссылкам. Интересное наблюдение: с первого захода все отображается как надо, если перезагрузить страницу через F5 - опять та же бодяга...
-
Поменял в файле пхп в строчке -
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
- на windows-1251. При проверке пхп получаю то, что нужно:
<?xml version="1.0" encoding="windows-1251" standalone="yes" ?>
<response>Здравствуйте, alex!</response>При проверке хтмл - все работает совершенно правильно. Разумеется до тех пор, пока не ввожу русский шрифт И пока оба документа сохранены в виндовс-кодировке.
При сохранении документов как Unicode - пхп выдает пустой экран, js глохнет на обработке xml, получаемого от пхп-скрипта. Независимо от того, какая кодировка задана xml-у в скрипте.
-
спасибо.
Если сохранять через WordPad - это "документ Unicode"?
сохранил пхп как Unicode, исправил ошибку в js-скрипте в функции handleServerResponse. Теперь выдает ошибку в строке 69 - на этой строчке: helloMessage = xmlDocumentElement.firstChild.data;
Проверяю работу пхп-скрипта - на домашней машине не выдает вообще ничего, пустую страницу; на хостинге Агавы - страничку полную квадратиков с редкими вкраплениями вариантов ответов скрипта Пытаюсь переключить кодировку в браузере на UTF-8 - бестолку.
-
текст скриптов.
хтмл:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>AJAX & PHP</title>
<script type='text/javascript' src='quickstart.js'></script>
</head>
<body onload='process()'>
Сервер желает узнать ваше имя:
<input type='text' id='myName' />
<div id='divMessage' />
</body>
</html>js:
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject()
{
// alert (document.getElementById('myName').value);
var xmlHttp;
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
xmlHttp = false;
}
}
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
xmlHttp = false;
}
}
if(!xmlHttp)
alert("Ошибка создания объекта");
else
{
// alert(xmlHttp.readyState);
return xmlHttp;
}
}
function process()
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
{
name = encodeURIComponent(document.getElementById('myName').value);
xmlHttp.open('GET', 'quickstart.php?name=' + name, true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000);
}
function handleServerResponse()
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
helloMessage = xmlDocumentElement.firstChild.data;
document.getElementById('divMessage').innerHTML = '<i>' + helloMessage + '<i>';
setTimeout('process()', 1000);
}
else
{
alert('При обращении к серверу возникли проблемы: ' + xmlHttp.statusText);
}
}
}php:
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$name = $_GET['name'];
$userNames = array('ALEX', 'MARSYLIJ');
if (in_array(strtoupper($name), $userNames))
echo 'Здравствуйте, ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Скажи мне, как зовут тебя, незнакомец!';
else
echo htmlentities($name) . ' , вы мне не знакомы!';
echo '</response>';
?> -
Добрый день.
Начинаю изучать ajax, пытаюсь выполнить учебный пример.
В примере нужно создать три файла - html, js и php.
Суть примера - пользователь вводит в поле ввода имя, яваскрипт отсылает введенный текст серверному скрипту, скрипт проверяет совпадение имени с одним из эл-тов массива. При совпадении отдает через xml один ответ, при несовпадении другой. Страница принимает ответ, обрабатывает xml и отображает текст в div-е.
Текст скриптов ниже, пока суть проблемы: похоже, что либо не срабатывает функция, вызываемая через timeout -
setTimeout('process()', 1000);
- либо что-то не так с xml. Вставляю в процедуру обработки ответа сервера алерт, алерт молчит. Проверяю работу пхп-скрипта - получаю немножко не тот ответ, который дан в книге: вместо
<response>Здравствуйте, аlex!</response>
- получаю вот такое:
В чем может быть дело, как это решать?
XML-парсер
in PHP
Posted
Спасибо.