php content type xml

How to change content type in php?

I have an image, but it keep doesn’t display. I check the image properties (right-click and chose properties), and the I found the «type» is text/html not JPEG image. Is this because the type that cause my images dont show up?? How to change the «Type» value? I am using php.

I display the image in a simple html [img] tag.

Yeah, i tried.. If i include the

It display the URL, very weird huh??

I am using apache, the image is generated by php code.

2 Answers 2

Make sure to call the header() function before doing any output or you will get a «Headers already sent» error.

Make sure to call header() before outputting anything—even a blank line or stray space that was accidentally output will cause header() to fail (usually it’s best if you put your call to header() at the beginning of the script).

If you don’t have access to the script that generated the image, then you’re out of luck, I think.

php content type xml. Смотреть фото php content type xml. Смотреть картинку php content type xml. Картинка про php content type xml. Фото php content type xml

Linked

Related

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.9.17.40238

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Источник

PHP: How to extract “content type=”application/xml» nodes from a XML file?

I have a valid XML file (generated from SharePoint) which looks like this (in browser):

Sample XML File

(Note: I cut off some repeated nodes here, because it is so long.)

Clearly, we have inner nodes which also contain data inside.

The Problem (When parsing with PHP)

In PHP, i used this codes to parse (trying to extract it):

.. and then, it is giving me these:

Question (Help!)

How do i extract (get) the actual data inside those nodes, please?

Please help. Thank you in advance.

2 Answers 2

The elements below «content» have a namespace (d. ). I had the same problem a while ago. This should help:

and proccced with the result.

In your example namespaces can be found in the document element:
xmlns:d=»http://schemas.microsoft.com/ado/2007/08/dataservices» xmlns:m=»http://schemas.microsoft.com/ado/2007/08/dataservices/metadata»
(use the URL between the quotation marks)
d: and m: are used in the document to reference these namespaces.

EDIT: There is another namespace involved. Didn’t recognize that. The solution can be atapted. I changed the code a bit.

I had a very similar issue. I was finally able to get my example working with this.

You would need to replace the Url in file_get_contents, the Key variable and LastName variable with you namespace values that you are looking for and I like to use a pre function to have things show easier. You can remove this part. Hopes this helps someone.

Источник

PHP и XML

Итак, поговорим об XML. Что же это такое и почему многие профессиональные программисты предпочитают его всем другим форматам? И почему так много хвалебных отзывов со стороны тех, кто с ним столкнулся? И почему, наконец, так мало негативных отзывов от тех, кто с ним не сталкивался :-)? XML как язык (а это именно язык, только не программирования, а разметки) сформировался сравнительно недавно — официально первая редакция его спецификации была опубликована в 1998 году. Формат этот оказался настолько удачным, что сразу пришелся ко двору, и его реализации разошлись практически по всем языкам программирования (правда, пока еще в виде внешних модулей или обработчиков) — от Delphi до PHP. Однако русскоязычной документации по нему мало, а сам язык настолько масштабируем и гибок, что описать все области его применения просто невозможно. Поэтому отечественные программисты еще только начинают постигать тайны XML и пока лишь пытаются применять его на практике.

Аббревиатура XML расшифровывается и переводится как «расширяемый язык разметки». И в этом вся его суть. В принципе, программист сам определяет формат файла и сам пишет его обработчик, используя для этого предоставляемые языком средства или разрабатывая собственные. Теперь никому не нужны километры исходного кода для обработки сотен текстовых файлов — все это легко заменяется одним XML-файлом и одним парсером (обработчиком).

XML-файл является обыкновенным текстовым файлом, данные которого организованы таким образом, чтобы создать иерархическую структуру (дерево) тэгов. Имена и атрибуты тэгов программист придумывает самостоятельно, а правила их написания аналогичны таковым в HTML. Например, для книжного магазина:

Как видите, даже отвлеченный от программирования человек может понять, о чем идет речь в этом файле. Таким нехитрым способом, применяя древовидную структуру организации данных, разработчики достигают полного отделения содержимого (XML) от дизайна (HTML и прочее), в чем и состоит цель рассматриваемого языка разметки.

Теперь об основных понятиях XML-разметки. Количество тэгов в файле не ограничено, равно как и количество их атрибутов. XML-документ должен быть составлен корректно, в соответствии со следующими правилами, многие из которых перекликаются со спецификацией HTML:

1. — в первой строке всегда содержится версия спецификации, но могут быть и дополнительные атрибуты — например, кодировка символов документа.

2. В документе присутствует один и только один корневой элемент (парный тэг в нашем случае), подобно в языке HTML. Все дочерние элементы могут содержать любое количество вложенных тэгов, которые, в свою очередь, тоже могут содержать любое количество потомков, за счет чего и обеспечивается древовидность.

3. Все без исключения тэги должны иметь соответствующие закрывающие элементы. Если в HTML можно было, например, опустить некоторые закрывающие тэги, и это считалось правильным даже в соответствии со спецификацией, то в XML это недопустимо, так как моментально вызовет ошибку обработки. Правда, если в тэге не планируется создавать никаких вложенных элементов (будь то содержимое или другой тэг), то закрыть его можно несколько проще (например, вместо )

4. Все атрибуты тэгов нужно заключать в кавычки — двойные или одинарные.

5. Все остальные правила, дабы не загромождать статью, читайте в спецификации, которая находится по адресу http://www.w3.org/TR/REC-xml.

PHP и XML

Итак, с XML более-менее разобрались. Во всяком случае, несложный структурированный файл в соответствии с правилами XML-разметки вы создать уже сможете, особенно зная основы HTML. Теперь давайте приступим к реализации функций обработки XML-содержимого на языке PHP.

Думаю, не стоит особо распространяться о пользе PHP как серверного языка программирования. Все возможности Perl плюс «еще кое-что» — и мы имеем полноценный интерпретируемый язык программирования, выполняемый на стороне сервера. В дальнейшем предполагается, что сервер и PHP у вас уже установлены и должным образом настроены на совместную работу, и что вы имеете общие понятия об их функционировании и программировании (начинающим программистам рекомендуем ознакомиться с циклом Артема Шманцырева «Сервер племени апачей», МК №№38-40, 42, 44, 46, 50, 4, 9 (209-211, 213, 215, 217, 221, 227, 232) — примеч. ред.) Многие хостинг-провайдеры — это в основном относится к платным хостингам — предоставляют PHP, в конфигурации которого уже доступны модули обработки XML. Для домашней же платформы могу порекомендовать следующее.

В последние версии PHP (начиная с версии 4.3.0 для платформы Windows, как самой распространенной) включена библиотека php_domxml.dll, которую нужно подключить к интерпретатору для получения доступа к функциям обработки XML (подобная библиотека есть и в Linux, но там она подключается несколько иначе). Эта библиотека находится в каталоге extension_dir, прописанном в конфигурационном файле php.ini, который в свою очередь лежит (или должен лежать) в вашей папке Windows. В этом же файле раскомментируйте строчку extension=php_domxml.dll, и вы получите возможность оперировать документами XML, применяя объектную модель Document Object Model, на которой мы сегодня подробно остановимся. Кстати, рассматривать возможности PHP по работе с XML-файлами мы будем на простейшем примере — мы напишем собственную гостевую книгу. Пример, конечно, идеализирован, но на серверах со скриптами я пока еще не встречал гостевых книг, написанных с применением XML. Поэтому, надеюсь, сегодняшние примеры будут для вас не только интересными, но и полезными.

Для гостевой книги мы на сервере создадим файл с именем guest.xml, который будет содержать все оставленные записи в следующем формате:

Перед тем как приступить к написанию самого скрипта, хочу сказать, что в PHP функции работы с XML пока реализованы экспериментально (правда, в версии 5.0 на XML сделана особая ставка, вот только версия эта пока еще находится в состоянии беты, следовательно, переходить на нее пока еще не стоит). Это значит, что приведенные скрипты могут не работать при наличии других версий PHP, не соответствующих указанной. К тому же мои скрипты далеки от совершенства в плане производительности и красоты написания. Поэтому не нужно заваливать мой бедный почтовый ящик гневными письмами. Мое дело, как автора, — натолкнуть вас на мысль, а реализация этой мысли остается исключительно за вами.

PHP поддерживает два модуля, осуществляющие XML-парсинг. Первый называется SAX (Simple API for XML). В силу сложности и ограниченной функциональности (с помощью SAX невозможно записать данные в XML-файл — он поддерживает только чтение), этот интерфейс нами сегодня рассматриваться не будет. Второй модуль представляет гораздо больший интерес с точки зрения разработчика, так как позволяет более наглядно работать с XML-файлом, причем поддерживаются операции и чтения, и записи. Называется он DOM (Document Object Module) и реализуется в PHP следующим образом.

С помощью функции domxml_open_file, вызываемой с именем XML-файла в качестве параметра (в нашем случае — guest.xml), все дерево XML-элементов из файла загружается в память компьютера-сервера (в переменную). Это значит, что никакие изменения, произведенные с открытым файлом, не вступят в силу до его принудительной записи на диск. Эта технология очень удобна, так как позволяет десять раз перепроверить корректность произведенных над файлом действий перед тем как окончательно его сохранить. Вообще, корректности в формате XML уделено огромное внимание, что не может не сказаться на его реализациях в языках программирования.

В XML-файле, как уже было сказано, может существовать только один корневой элемент. Корневой элемент можно получить, используя функцию document_element(), вызываемую без параметров и возвращающую объект. В полученном объекте хранятся все дочерние элементы (тэги ), которые мы можем получить, вызвав функцию child_nodes(), возвращающую массив дочерних тэгов. Теперь, пройдясь по полученному массиву циклом foreach, можно получить атрибуты каждого из дочерних элементов (функция get_attribute(), вызываемая с именем атрибута в качестве параметра) и содержимое этих элементов (функция get_content() без параметров). Каждый элемент, дочерний для корневого, может быть корневым для вложенных элементов, если таковые имеются. В таком случае их можно также получить во вложенном цикле foreach, пройдясь им по элементу верхнего уровня.

Для нашей гостевой книги скрипт чтения сообщений будет выглядеть следующим образом:

В результате выполнения скрипта на страничку в одну строчку выведутся все сообщения из гостевой книги. Я намеренно не делаю никакого оформления (например, можно было бы вывести все сообщения в таблице, разделив все поля и сделав сообщение удобочитаемым), так как статья в этом случае растянется на десяток номеров. Еще раз повторю, что моя задача — натолкнуть вас на идею. Все остальное — дело вашего личного вкуса и предпочтений. Рабочий вариант гостевой вы можете посмотреть по адресу http://www.cosmic.net.ua/gb.

Как я уже говорил, модель DOM позволяет не только читать данные из XML-файла, но и записывать их, добавляя новые элементы или атрибуты. Для того чтобы записать данные, нужно снова открыть XML-файл с помощью функции domxml_open_file и получить корневой элемент дерева (функция document_element()). Далее, с помощью функции new_child() в конце множества имеющихся дочерних тэгов создаем новый дочерний элемент. Функция принимает два параметра — название элемента и собственно его содержимое. Атрибуты дочернего тэга устанавливаются при помощи функции set_attribute(), в качестве параметров принимающей название атрибута и его значение.

В заключение поговорим о возможных областях применения рассмотренных технологий. XML, несмотря на свою универсальность, все же не является панацеей, поэтому не стоит сразу все бросать и переходить на использование нового формата, не убедившись в его стопроцентной необходимости. XML может выручить, например, если заранее неизвестно, каким клиентом будут обрабатываться данные (будь то интернет-браузер или совершенно самостоятельный клиент, написанный сторонними разработчиками). Очень удобно делать развязку между данными и оформлением, строя шаблоны своих страниц на выборках из XML-файлов. Еще удобнее делать сайты на нескольких языках, используя встроенные средства XML для организации мультиязычного интерфейса.

Так что как всегда выбор остается за вами, уважаемые читатели.

Источник

PHP XML how to output nice format

Here are the codes:

If I print it in the browser I don’t get nice XML structure like

And I want to be utf-8 How is this all possible to do?

7 Answers 7

You can try to do this:

You can make set these parameter right after you’ve created the DOMDocument as well:

That’s probably more concise. Output in both cases is (Demo):

Alternatively, there is the tidy extension with tidy_repair_string which can pretty print XML data as well. It’s possible to specify indentation levels with it, however tidy will never output tabs.

php content type xml. Смотреть фото php content type xml. Смотреть картинку php content type xml. Картинка про php content type xml. Фото php content type xml

With a SimpleXml object, you can simply

$xml is your simplexml object

php content type xml. Смотреть фото php content type xml. Смотреть картинку php content type xml. Картинка про php content type xml. Фото php content type xml

Tried all the answers but none worked. Maybe it’s because I’m appending and removing childs before saving the XML. After a lot of googling found this comment in the php documentation. I only had to reload the resulting XML to make it work.

Two different issues here:

Set the formatOutput and preserveWhiteSpace attributes to TRUE to generate formatted XML:

Many web browsers (namely Internet Explorer and Firefox) format XML when they display it. Use either the View Source feature or a regular text editor to inspect the output.

When using saveXML(), preserveWhiteSpace in the target DOMdocument does not apply to imported nodes (as at PHP 5.6).

Consider the following code:

Источник

HTTP заголовки | Тип содержимого

Заголовок Content-Type используется для указания типа мультимедиа ресурса. Тип носителя — это строка, отправляемая вместе с файлом с указанием формата файла. Например, для файла изображения его тип носителя будет таким, как image / png или image / jpg и т. Д.

В ответ он сообщает о типе возвращаемого контента клиенту. Браузер узнает о типе контента, который он должен загрузить на компьютер. Каждый раз, когда его байтовый поток файла, который получают браузеры, с помощью заголовка Content-type, браузер будет делать что-то, известное как сниффинг MIME, то есть он будет проверять поток, который он получает, и затем соответствующим образом загружает данные.

Синтаксис:

Директивы: в заголовках HTTP есть три директивы Content-type.

Пример. В этом примере показано, как изображения читаются браузером с настройкой заголовка типа контента и без него.

header( ‘Content-type: image/jpeg’ ); // с заголовком Тип содержимого

Выход :

php content type xml. Смотреть фото php content type xml. Смотреть картинку php content type xml. Картинка про php content type xml. Фото php content type xml

Теперь, не используя заголовок Content-type, мы получим содержимое изображения в байтах, поэтому оно нам не нужно.

Здесь ясно видно, что, применяя информацию заголовка Content-type, сообщает браузеру, тип ответа, который он получает от сервера.

Все возможные значения заголовка HTTP Content-type:

TypeValues
Applicationapplication/EDI-X12
application/EDIFACT
application/javascript
application/octet-stream
application/ogg
application/pdf
application/xhtml+xml
application/x-shockwave-flash
application/json
application/ld+json
application/xml
application/zip
application/x-www-form-urlencoded
Audioaudio/mpeg
audio/x-ms-wma
audio/vnd.rn-realaudio
audio/x-wav
Imageimage/gif
image/jpeg
image/png
image/tiff
image/vnd.microsoft.icon
image/x-icon
image/vnd.djvu
image/svg+xml
Multipartmultipart/mixed
multipart/alternative
multipart/related (using by MHTML (HTML mail).)
multipart/form-data
Texttext/css
text/csv
text/html
text/javascript (obsolete)
text/plain
text/xml
Videovideo/mpeg
video/mp4
video/quicktime
video/x-ms-wmv
video/x-msvideo
video/x-flv
video/webm
VNDapplication/vnd.oasis.opendocument.text
application/vnd.oasis.opendocument.spreadsheet
application/vnd.oasis.opendocument.presentation
application/vnd.oasis.opendocument.graphics
application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
application/vnd.ms-powerpoint
application/vnd.openxmlformats-officedocument.presentationml.presentation
application/msword
application/vnd.openxmlformats-officedocument.wordprocessingml.document
application/vnd.mozilla.xul+xml

Поддерживаемые браузеры: браузеры, совместимые с заголовками HTTP, Content-type перечислены ниже:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *