С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186

Забрать данные из каталога с xml файлами

11.07.2013, 19:46. Показов 2115. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Задача следующая. Есть папка с файлами xml. Каждая xml имеет разное наполнение данными, но одинаковую структуру тегов. Суть в том, чтобы вывести на экран список xml из каталога. Список в виде ссылок. При нажатии на ссылку генерится html-страница и пользователь читает информацию, записанную в xml.


Написал скрипт, который вытаскивает данные из xml и выводит в браузер в html:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
    function onStart($sax, $tag, $att) {
        if($tag != "DOC" and $tag != "BLOCK")
            echo "<td>";
        if($tag == "BLOCK")
            echo "<tr>";
    }
    function onEnd($sax, $tag) {
        if($tag != "DOC" and $tag != "BLOCK")
            echo "</td>";
        if($tag == "BLOCK")
            echo "</tr>";
    }
    function onText($sax, $text) {
        echo $text; 
    }
 
    $sax = xml_parser_create("UTF-8");
    xml_set_element_handler($sax, "onstart", "onEnd");
    xml_set_character_data_handler($sax, "onText");
?>
<html>
    <table>
        <tr>
            <td></td>
        </tr>
        <tr>
            <td>xml_parse($sax, file_get_contents("xml/xml_1.xml"));</td>
        </tr>
    </table>
</html>
Выводит отлично!

Теперь пытаюсь написать скрипт, который выводит из папки все xml. Написал. Выводит! Вот он:

PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
    $dir = "xml/";
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) { 
            while ($file = readdir($dh)) {
                if (!is_dir($file))
                    echo "<table><tr><td><a href=$dir$file title= 'Просмотр' >$file</a></td></tr></table><br />";
            }
        }
    }                   
?>
И тут всё. Дальше никак. Скрипт выводит список файлов со ссылками на них, а вот как в качестве ссылки передать значение тега <NAME> (т.е. чтобы не название файла, а то, что лежит в <NAME></NAME>) и чтобы при нажатии сгенериласть читабельная html - это не получается. Прошу помочь! Пожалуйста!

Заранее огромное спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2013, 19:46
Ответы с готовыми решениями:

XML SOAP PHP 1с(Нужно забрать XML c веб сервиса)
Хелп плиз есть веб сервис раскатанный на 1с ...

Как правильно забрать данные
Доброе вечер, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНО забрать часть строки из строки. Вот, к...

Как правильней забрать данные
Доброе утро, уважаемые форумчане!) Столкнулся с токой проблемой, что не знаю как ПРАВИЛЬНЕЙ забрать id категории с url страницы. Вот,...

12
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.07.2013, 14:33
через GET, как то так: http://html.form/generator.php?name=NAME
0
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
12.07.2013, 17:13  [ТС]
Ссылка не рабочая.
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
12.07.2013, 17:15
ab-vrn, Это не ссылка, это пример того как твоя ссылка должны выглядить!
0
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
13.07.2013, 18:36  [ТС]
Так, стоп. За ссылку спасибо, но, допустим у меня в generator.php (как в ссылке) будет парсер xml, но как мне передать именно эту xml. Поясню. Я переписал парсер xml. Стал использовать simplexml_load_file. Я не понимаю как передать в её имя файла из которого нужно данные тащить?
0
16 / 5 / 2
Регистрация: 02.08.2012
Сообщений: 52
14.07.2013, 09:23
Вам же объяснили, в get-запросе. Почитайте http://rio-shaman.ru/razrabotk... t-zaprosy/.
0
 Аватар для Vas-e-na
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
14.07.2013, 12:05
Цитата Сообщение от Vas-e-na Посмотреть сообщение
http://html.form/generator.php?name=NAME
Замени в ссылке NAME на идентификатор твоего файла
0
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
15.07.2013, 13:01  [ТС]
Я так понял должно быть так:
PHP
1
2
3
if (isset ($_GET['file'])) {
 echo "<a href="http://test1.ru/generator.php?name=file">$file</a>";
}
0
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
14.08.2013, 23:53  [ТС]
Цитата Сообщение от ab-vrn Посмотреть сообщение
Я так понял должно быть так:
PHP
1
2
3
if (isset ($_GET['file'])) {
 echo "<a href="http://test1.ru/generator.php?name=file">$file</a>";
}
Ну так использую ваш совет. не работает. Где я ошибаюсь, подскажите, пожалуйста:
PHP
1
2
3
if (isset ($_GET['files'])) {
                    echo "<td><a href='page_doc_complecs.php?name=files'>" . $files[$k][0] . "</a></td>\n";
                    }
0
 Аватар для Gori4ka
17 / 17 / 6
Регистрация: 08.05.2013
Сообщений: 107
15.08.2013, 00:28
Цитата Сообщение от ab-vrn Посмотреть сообщение
Ну так использую ваш совет. не работает. Где я ошибаюсь, подскажите, пожалуйста:
PHP
1
2
3
if (isset ($_GET['files'])) {
                    echo "<td><a href='page_doc_complecs.php?name=files'>" . $files[$k][0] . "</a></td>\n";
                    }
у вас получается название ссылки динамическое $files[$k][0]
а адресс ссылки статический у вас <a href='page_doc_complecs.php?name=files'>

попробуйте вот так:
PHP
1
2
3
if (isset ($_GET['files'])) {
                    echo "<td><a href='page_doc_complecs.php?name=".$files[$k][0]."'>" . $files[$k][0] . "</a></td>\n";
                    }
1
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
15.08.2013, 00:31  [ТС]
Хм... да пробовал я так. Пустой экран.
0
 Аватар для Gori4ka
17 / 17 / 6
Регистрация: 08.05.2013
Сообщений: 107
15.08.2013, 00:34
ну пустое потому что наверное запросс не правильный я не знаю что у вас тут хранится
PHP
1
$files[$k][0]
может это русское название
1
6 / 6 / 2
Регистрация: 11.07.2013
Сообщений: 186
15.08.2013, 02:03  [ТС]
Прошу прощения. Сижу за буком и одновременно множество окон со скриптами. перепутал. $files[$k][0] - это из друго скрипта, где я пишу файловый менеджер. а тут скрипт так и остался прежним:
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
    $dir = "xml/";
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) { 
            while ($file = readdir($dh)) {
                if (!is_dir($file))
                    echo "<table><tr><td><a href=$dir$file title= 'Просмотр' >$file</a></td></tr></table><br />";
            }
        }
    }                   
?>
Добавлено через 35 минут
Подскажите, почему, если в папке лежит doc он пытается открыть его в браузере. Как сделать заставить открываться в ворде?

Добавлено через 25 минут
По идее, выводится же ссылка на файл и браузер должен предложить "чем открыть?". Ссылка вроде верная, а брайзер почему-то не задаёт такого вопроса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2013, 02:03
Помогаю со студенческими работами здесь

Как забрать данные из ссылки?
Подскажите пожалуйста, есть сайт с такой ссылкой. https://site.ru?num=121241&amp;id=2512 Как забрать это число 121241 и внести в переменную...

Как забрать данные из необычной формы?
Вот такая форма: http://i.**********/hr1MeVQ.png Не получается забрать из неё данные. Вот что пробывал поставить: $Login = $_POST'];...

XML: забрать данные на два уровня ниже
Появилась проблема, делаю курсовую работу, с Delphi знаком только месяц и не проходили, да и не будем XML. Суть проблемы заключается в...

Как забрать XML файл с запароленного FTP сервера ?
вообщем то весь вопрос ;-)

Забрать данные с сайта
Всем доброго дня. Постараюсь кратко описать суть желаемого. С Делфи сталкивался оч. давно поэтому наверное могу и глупость написать) Суть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru