Home >Backend Development >PHP Tutorial >Website programming with PHP and XML_PHP tutorial

Website programming with PHP and XML_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:38:26982browse

1. Short sequence
 
HTML is easy to learn and versatile. General PHP programs are embedded in the HTML language. However, as the WEB becomes more and more widely used, the weaknesses of HTML are becoming more and more obvious. The emergence of XML makes up for these shortcomings. It provides a universal method that can handle all data on the Internet.
 
 2. Analysis of limitations of HTML
 
 1. HTML has poor scalability. Although HTML should be sufficient for general applications, it has obvious shortcomings when dealing with symbols such as mathematics and chemistry, and it cannot be expanded, which greatly limits its development.
 
 2. It cannot be automatically corrected after the link is lost. Since the URL address of a Web page changes frequently, the information must be modified manually when changing the URL address. Otherwise, a "404 URL address not found" message will be encountered, which greatly increases the workload of maintaining the Web page.
 
 3. Data search takes a long time. Since HTML is mainly used to control the display of web pages, the same data has different storage formats in different web pages, making it impossible to quickly find the required information when performing data searches.
 
 4. HTML does not have enough support for double-byte or multi-national characters. For example, Chinese information pages may not be displayed on different platforms.
 
It is precisely because of these shortcomings that people have studied Web page production languages ​​that can replace HTML. Among them, those already in use include Extensible Markup Language XML, Cascading Style Sheets (CSS), and Dynamic HTML (DHTML).
 
 3. The composition of XML
 
Here is a brief list of several major XML technologies:
 
 1. DTD (Document Type Declaration)

The main functions of DTD are to define the content mode of XML; to limit the data range of XML tags; and to define the data type of attributes. However, because it is not written in XML, its scalability is relatively poor; and it only provides a limited number of data types, so its role is limited.
 
 2. XML Schema
 
 The function of XML Schema is similar to that of DTD. But the difference is that the Schema file describes the specific types of elements and attributes in the XML file that references it. In addition, since it is written in XML, Schema has the following advantages compared with DTD:
 
 ·XML Schema content model is open and can be expanded at will, while DTD cannot parse the expanded content.
 
  DTD can only define the content type as a string, while XML Schema allows the content type to be defined as integer, floating point, Boolean or many other simple data types.
 
 ·XML Schema uses Namespaces to connect special nodes in the document with the Schema. An XML file can have multiple corresponding Schemas, and an XML file can only have one DTD.
 
 3. XLink
 
 As a Web language, the linking ability of XML is very important. XML linking and addressing mechanisms include XLink, XPath and XPointer. XLink provides a powerful linking method that can establish one-way or multi-way complex connection relationships between documents, as well as a variety of linking functions such as annotation links, summary links, and extended link sets. XPath is used in XSLT and XPointer to support positioning relative to nodes and node sets in XML documents. XPointer provides positioning of the internal structure of the content of an XML document (such as a string or a selected paragraph) based on XPath. The linking capabilities of XML have been greatly enhanced compared to HTML.
 
 4. CSS and XSL
 
 One of the characteristics of XML is the separation of content and format. That is to say, the XML document does not contain information on how to display/represent the document. CSS and XSL (XML Style Language) solve the problem of displaying XML documents.
 
 CSS (Cascading Style Sheets) can also be used in HTML and XML. XSL completely uses XML syntax and is much more powerful than CSS.
 
 5. DOM
 
  The Document Object Model (DOM) is a platform- and language-independent program interface that provides a means to dynamically access and update the content, structure, and style of a document. The text can be processed further and the results of the processing are updated to the presentation page.
 
The goal of DOM is to define a standard programming interface for XML and HTML, which includes three parts: core, HTML and XML. The core part of the DOM establishes a set of underlying objects that can represent any structured document. HTML and XML provide high-level interfaces that serve as more convenient document views. The DOM specification consists of objects and methods. Programmers use them to make it easier to access and manipulate certain types of documents.
 
 6. Namespaces
 
 Namespaces are a collection of all names that appear in elements and attributes of XML files, distinguished by URLs. In XML, users can define tags and elements themselves. Therefore, if multiple XML files are merged into one, conflicts are likely to occur. Namespaces solve this problem.
 
 4. PHP’s support for XML
 
 PHP provides powerful support for XML.It uses an XML "parser", and in order to support this parser, it provides 20 (PHP4) XML parsing functions. Below are some of the most commonly used PHP parsing functions.
 
 1. xml_parse
 
 boolean xml_parse(int parser, string data, int [isFinal]); The parameter parser is the parsing code. The parameter data is the parsed data block (chunk). The parameter isFinal can be omitted. If set to true, the system will automatically send the last piece of data to the data parameter. Returns true if there are no errors.
 
 2. xml_parser_create
 
 int xml_parser_create(string [encoding]);
 
 This function is used to initialize a new XML parser. The encoding parameter can be omitted and is the character set used by XML. The default value is ISO-8859-1. There are two other options: US-ASCII and UTF-8. On success, the parser code is returned for use by other functions, and on failure, a false value is returned.
 
 3. xml_set_element_handler
 
 boolean xml_set_element_handler(int parser, string startElementHandler, string endElementHandler); The parameter parser is the parsing code. The parameters startElementHandler and endElementHandler are the headers of the start and end of the element respectively. The startElementHandler must include the parsing code, name, and attributes, while the endElementHandler parameter includes the parsing code and name. Returns true if there are no errors.
 
 4. xml_set_character_data_handler
 
 boolean xml_set_character_data_handler(int parser, string handler); The parameter parser is the parsing code. The parameter handler includes two elements: parsing code and data string. Returns true if there are no errors.
 
 5. xml_get_error_code
 
 int xml_get_error_code (int parser); The parameter parser is the parsing code. If there is an error in the parser, a false value is returned, otherwise an error code (such as XML_ERROR_BINARY_ENTITY_REF .... etc.) is returned.
 
 6. xml_error_string
 
 string xml_error_string (int code); The parameter code is the parsing error code. If there is no error, the return value is a text description string of the code.
 
 7. xml_get_current_line_number
 
 int xml_get_current_line_number (int parser); The parameter parser is the parsing code. If the parser has an error, it returns a false value, if there is no error, it returns a line number.
 
 8. xml_parser_free
 
 boolean xml_parser_free (int parser); The parameter parser is the parsing code. Returns true if there are no errors, false otherwise.
 
 
5. Case Analysis

 
The following is an example of using PHP5 to read an address book address.xml written in XML 1.0 format and display its contents. See relevant notes for details.
 
 <?
 //
 //Part One: Several PHP Helper Functions
 //
 
/**************************************
 
 *Read XML from a file*
*Content into string*

*************************************/
 
Function read_file($filename)
 {
 //Read file
 $lines=file($filename);
 //The variable $contents is a variable that stores the contents of the file
 $contents ="";
 while(list($key,$value)=each($lines))
 {
 $contents.=$value;
 }
 return $contents;
 }
 
 /*********************************
 *When PHP encounters an XML start tag*
*Call, its function is to follow a certain level*
*Display XML tags*
****************************** *******/
 
 function start_element($parser, $name, $attrs)
 {
 //The variable $depth stores the mark Depth
Global $depth;
//Variable $spacer stores all arrow symbols before the mark
$spacer="";
for ($i=1;$i<$depth[$parser ];$i++)
 {
 $spacer.="->";
 }
 //Set the color when the mark is displayed
 if($depth[$parser]==0 )
 {
 $font_color="red";
 }
else
 if($depth[$parser]==1)
 {
 $font_color="green ";
 }
else
{
$font_color="blue";
}
//Set the font when the mark is displayed
$font_size=5-$depth[ $parser];
 if ($font_size<2)
 {
 $font_size=2;
 }
 //Display mark
 echo "<font size=".$font_size ." color=".$font_color.">";
echo $spacer.$depth[$parser];
if ($depth[$parser]<>0)
{
echo ",";
 }
echo $name."<BR>";
echo "</font>";
$depth[$parser]++;
 //if If it is the main mark, a red horizontal line will be displayed
 if($depth[$parser]==2)
 {
 echo "<hr color=red size=1>";
 }
}
 
 /************************************
 *When PHP encounters a The end tag of XML is called *
*, its function is to change the current level *
* count and display a horizontal line under the main tag*

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/735106.htmlTechArticle1. Small order HTML is simple, easy to learn and versatile. General PHP programs are embedded in HTML language. However, as the WEB becomes more and more widely used, the weaknesses of HTML are becoming more and more obvious. ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn