Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.04.2009, 14:08
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 1  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
По умолчанию IP + XML, определение и создание

День добрый, обращаюсь из флеша к пхп, отправляю ему запись, хотелось бы что бы она записывалсь в реальную хмлку (если вдруг у кого инть окажется под рукой скрипт или исходник).. Ну это в идеале, если нет то укажите плиз команды по которым следует поискать, а то в пхп вообще 0.(отправить данные в виде хмла флешу я могу и сам, а вот то бы хмл создался и лежал в папочке с пхпшкой пока нет).
З.Ы. Вот файл как я отправляю данные в виде хмл флешу:
Код AS1/AS2:
<?php 
echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
$startdirname = "e:/films/Films";
$linkname = "ftp://192.168.1.1/Films/Films";
 
recopendir($startdirname);
 
function toUTF($str)
{
     $str=iconv("windows-1251", "utf-8", $str);
     return $str;
}
 
function recopendir($dirname)
{
     if($dir=opendir($dirname)) 
     {
		global $startdirname;
		global $linkname;
		$folder = str_replace($startdirname."/", "", $dirname); // тут важное
		echo "<folder name = \"".toUTF($folder)."\" >";
		while ($file=readdir($dir)) 
		{ 
			if (eregi(".avi$|.mkv$|.vob$",$file)) 
			echo "<item film = \"".toUTF($file)."\" link = \"".toUTF($linkname."/".$folder."/".$file)."\" />";
			if (is_dir($dirname."/".$file) && ($file != ".") && ($file != ".."))     
			recopendir($dirname."/".$file);
		} 
		closedir($dir); 
		echo "</folder>";
     }
}
?>
хотелось бы что я так же создавалась реальный экземпляр этого (при этом желательно что бы так же сохранялось то что есть, то есть флеш получал данные в виде хмл)


Последний раз редактировалось nOobCrafter; 15.04.2009 в 14:19.
Старый 15.04.2009, 17:32
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 2  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
мдя. честно говоря не вглядывался в ваш исходник.
ну есть 2 варианта:изобретать велосипед или использовать модули XML парсинга. В первом варианте посмотрите функции работы с файлами. как пример тут ну или собственно в справочнике. Во втором варианте,раз нам надо запись в XML, значит модуль DOM (Document Object Module). вот пример гостевой с XML. тут или в справочнике.

Старый 15.04.2009, 18:44
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 3  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
PHP код:
$startdirname = "e:/films/Films";
$linkname = "ftp://192.168.1.1/Films/Films";
 
recopendir($startdirname);

function recopendir($dirname)
{
     if($dir=opendir($dirname)) 
     {
        global $startdirname;
        global $linkname;
        $folder = str_replace($startdirname."/", "", $dirname); // тут важное
        $toXML .= "<folder name = \"".toUTF($folder)."\" >";
        while ($file=readdir($dir)) 
        { 
            if (eregi(".avi$|.mkv$|.vob$",$file)) 
            $toXML .= "<item film = \"".toUTF($file)."\" link = \"".toUTF($linkname."/".$folder."/".$file)."\" />";
            if (is_dir($dirname."/".$file) && ($file != ".") && ($file != ".."))     
            recopendir($dirname."/".$file);
        } 
        closedir($dir); 
        $toXML .= "</folder>";
     }
}

writeXML('имя_файла.xml', $toXML);

function writeXML($filename, $xml){
    $xmlStart = '<?xml version="1.0" encoding="utf-8"?>';
    $toxml = $xmlStart.$xml;
    $toxml = iconv("windows-1251", "UTF-8", $toxml);
    $myfile = fopen ($filename, "w+");
    fwrite ($myfile, $toxml);
    fclose ($myfile);
}
только уберите использование функции toUTF, проще сразу все собержимое переконвертить, оно есть в функции writeXML


Последний раз редактировалось artem_fs; 15.04.2009 в 18:49.
Старый 15.04.2009, 18:48
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 4  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
artem_fs спасибо большое, именно то как я и хотел), а то стандартные парсинги меня несколько пугают своими названиями)
..хм рано обрадовался, неработает, хмлка не генерится(((
Код:
<?php
$startdirname = "D:\FilmZzz"; 
$linkname = "ftp://192.168.1.1/Films/Films"; 
  
recopendir($startdirname); 

function recopendir($dirname) 
{ 
     if($dir=opendir($dirname))  
     { 
        global $startdirname; 
        global $linkname; 
        $folder = str_replace($startdirname."/", "", $dirname); // тут важное 
        $toXML .= "<folder name = \"".$folder."\" >"; 
        while ($file=readdir($dir))  
        {  
            if (eregi(".avi$|.mkv$|.vob$",$file))  
            $toXML .= "<item film = \"".$file."\" link = \"".$linkname."/".$folder."/".$file)."\" />"; 
            if (is_dir($dirname."/".$file) && ($file != ".") && ($file != ".."))      
            recopendir($dirname."/".$file); 
        }  
        closedir($dir);  
        $toXML .= "</folder>"; 
     } 
} 

writeXML('n.xml', $toXML); 

function writeXML($filename, $xml){ 
    $xmlStart = '<?xml version="1.0" encoding="utf-8"?>'."\n<item>\n\n"; 
    $xmlEnd = '</item>'; 
    $toxml = $xmlStart.$xml.$xmlEnd; 
    $toxml = iconv("windows-1251", "UTF-8", $toxml); 
    $myfile = fopen ($filename, "w+"); 
    fwrite ($myfile, $toxml); 
    fclose ($myfile); 
}
?>


Последний раз редактировалось nOobCrafter; 15.04.2009 в 19:14.
Старый 15.04.2009, 19:19
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 5  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
а атрибуты папки какие стоят? проверь так:
PHP код:
$myfile fopen ("n.xml""w+"); 
    
fwrite ($myfile"проверка"); 
    
fclose ($myfile); 

Старый 15.04.2009, 19:33
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
папка на полном доступе.
и так не делается...у тебя создается?..
пробовал делать echo переменных (типа трейса во флеше) 0 результата, ниччо не выводится..((

Старый 15.04.2009, 23:45
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 7  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
а почему вы решили после выхода из функции recopendir переменная $toXML, которую вы передаете writeXML существует.
Предлагаю
PHP код:
writeXML('n.xml'$toXML); 
вставить внутрь функции recopendir

Старый 16.04.2009, 12:40
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 8  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
duhowka я честно гря пробовал и так:
Код:
<?php
$startdirname = "D:\FilmZzz"; 
$linkname = "ftp://192.168.1.1/Films/Films"; 
$toXML = "";

....

recopendir($startdirname); 
echo $toXML;  // думал тут что то выведет, но нет
?>
еще попробую прочесть ее глобально
З.Ы. та функция рекурсивная, имхо плохо будет елси 10-15 раз писать в файл.

Старый 16.04.2009, 13:58
artem_fs вне форума Посмотреть профиль Отправить личное сообщение для artem_fs Найти все сообщения от artem_fs
  № 9  
Ответить с цитированием
artem_fs

Регистрация: Jul 2008
Сообщений: 257
хм, странно что не создается, я на локальной машине никогда не работал правда, может путь надо полный указывать?
PHP код:
$myfile fopen ("e:/films/Films/n.xml""w+");  
fwrite ($myfile"проверка");  
fclose ($myfile); 
у меня эта функция работает (writeXML), если файла нету, она создает его.

Старый 16.04.2009, 14:51
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 10  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
artem_fs нет, хмлка должна генериться в папке с пхп, адрес к фильмам это просто для пхп, что бы он знал где искать, сам он лежит в папке с содержимым сайт (htdocs) не создается.
З.Ы. там еще не верно определяется $toXML я почти поправил но код чуть папзжее выложу.
----------------------- Вот рабочий вариант
Код:
<?php 

$toXML = "";  // обьявляю на всякий случай тут
$startdirname = "e:/films/Films";
$linkname = "ftp://192.168.1.1/Films/Films";

function toUTF($str)
{
     $str=iconv("windows-1251", "utf-8", $str);
     return $str;
}

function recopendir($dirname)
{
     if($dir=opendir($dirname)) 
     {
		global $startdirname;
		global $linkname;
		global $toXML;
		$folder = str_replace($startdirname."/", "", $dirname); // тут важное
		$toXML .= "<folder name = \"".toUTF($folder)."\" >";
		while ($file=readdir($dir)) 
		{ 
			if (eregi(".avi$|.mkv$|.vob$",$file)) 
			$toXML .= "<item film = \"".toUTF($file)."\" link = \"".toUTF($linkname."/".$folder."/".$file)."\" 

/>";
			if (is_dir($dirname."/".$file) && ($file != ".") && ($file != ".."))     
			recopendir($dirname."/".$file);
		} 
		closedir($dir); 
		$toXML .= "</folder>";
     }
}

function writeXML($filename, $xml){ 
    $xmlStart = '<?xml version="1.0" encoding="utf-8"?>'."\n<items>\n\n"; 
    $xmlEnd = '</items>'; 

    $toX = $xmlStart.$xml.$xmlEnd; // данные уже в кодировке utf-8 так что тут еще раз не конверчу

    $myfile = fopen ($filename, "w+"); 
    fwrite ($myfile, $toX); 
    fclose ($myfile); 
}

recopendir($startdirname);
writeXML('server.xml', $toXML); 

?>


Последний раз редактировалось nOobCrafter; 16.04.2009 в 17:29.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.