Har html-koden nedan med två stycken kommentarer <!--content--> och <!--sidebar-->
Jag skulle vilja kopiera ut delar från html-koden så här.
Allt som är innan taggen där <!--content--> finns ska hamna i en varialbel eller likande ex
Taggen som omsluter <!--content--> ska hamna i en varialbel eller likande.
Taggen som omsluter <!--sidebar--> ska hamna i en varialbel eller likande.
Allt som är efter taggen där <!--sidebar--> finns ska hamna i en varialbel eller likande ex
html-koden ovan är bara ett exempel och jag vill att php koden (parsern) ska fungera även om html koden ser annerlunda ut. Dock kommer kommentarerna alltid att finnas med i koden så jag vill de bestämmer vad som ska extraheras och inte ID eller class inne i en div. Eftersom det är ett html dokuemnt kommer såklart även taggarna doctype, html och body att finns även om strukturen är annerlunda.
Har tittat på preg_match men många rekomenderar att man använder PHP DOM istället för regular expression. Hur kan jag uppnå mitt mål på ett bättre sätt än med regular expression?
Vill med andra ord i slutändan har fyra variabler (eller motsvarande).
$header = "Allt innan <div id="contenttext">";
$content = "<div id="contenttext"> <!--content--> </div>";
$sidebar = "<div id="leftpanel"> <!--sidebar--> </div>";
$footer = "Allt efter <div id="leftpanel"> <!--sidebar--> </div>";
HTML-kod:
<!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> <meta name="author" content="Wink Hosting (www.winkhosting.com)" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="images/style.css" type="text/css" /> <title>RedTie</title> </head> <body> <div id="page" align="center"> <div id="content" style="width:800px"> <div id="logo"> <div style="margin-top:70px" class="whitetitle">RedTie</div> </div> <div id="topheader"> <div align="left" class="bodytext"> <br /> <strong>Your Company Name</strong><br /> Evergreen Terrace 742<br /> Kansas Missouri<br /> Phone: 432-653-3121<br /> sales@thetiecompany.com </div> <div id="toplinks" class="smallgraytext"> <a href="#">Home</a> | <a href="#">Sitemap</a> | <a href="#">Contact Us</a> </div> </div> <div id="menu"> <div align="right" class="smallwhitetext" style="padding:9px;"> <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> </div> </div> <div id="submenu"> <div align="right" class="smallgraytext" style="padding:9px;"> <a href="#">Submenu 1</a> | <a href="#">Submenu 2</a> | <a href="#">Submenu 3</a> | <a href="#">Submenu 4</a> | <a href="#">Submenu 5</a> | <a href="#">Submenu 6</a> </div> </div> <div id="contenttext"> <!--content--> </div> <div id="leftpanel"> <!--sidebar--> </div> <div id="footer" class="smallgraytext"> <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> | Your Company Name © 2007 | <a href="http://www.winkhosting.com" target="_blank">Hosting Colombia</a> </div> </div> </div> </body> </html>
Allt som är innan taggen där <!--content--> finns ska hamna i en varialbel eller likande ex
HTML-kod:
<!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> <meta name="author" content="Wink Hosting (www.winkhosting.com)" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="images/style.css" type="text/css" /> <title>RedTie</title> </head> <body> <div id="page" align="center"> <div id="content" style="width:800px"> <div id="logo"> <div style="margin-top:70px" class="whitetitle">RedTie</div> </div> <div id="topheader"> <div align="left" class="bodytext"> <br /> <strong>Your Company Name</strong><br /> Evergreen Terrace 742<br /> Kansas Missouri<br /> Phone: 432-653-3121<br /> sales@thetiecompany.com </div> <div id="toplinks" class="smallgraytext"> <a href="#">Home</a> | <a href="#">Sitemap</a> | <a href="#">Contact Us</a> </div> </div> <div id="menu"> <div align="right" class="smallwhitetext" style="padding:9px;"> <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> </div> </div> <div id="submenu"> <div align="right" class="smallgraytext" style="padding:9px;"> <a href="#">Submenu 1</a> | <a href="#">Submenu 2</a> | <a href="#">Submenu 3</a> | <a href="#">Submenu 4</a> | <a href="#">Submenu 5</a> | <a href="#">Submenu 6</a> </div> </div>
HTML-kod:
<div id="contenttext"> <!--content--> </div>
HTML-kod:
<div id="leftpanel"> <!--sidebar--> </div>
HTML-kod:
<div id="footer" class="smallgraytext"> <a href="#">Home</a> | <a href="#">About Us</a> | <a href="#">Products</a> | <a href="#">Our Services</a> | <a href="#">Contact Us</a> | Your Company Name © 2007 | <a href="http://www.winkhosting.com" target="_blank">Hosting Colombia</a> </div> </div> </div> </body> </html>
Har tittat på preg_match men många rekomenderar att man använder PHP DOM istället för regular expression. Hur kan jag uppnå mitt mål på ett bättre sätt än med regular expression?
Vill med andra ord i slutändan har fyra variabler (eller motsvarande).
$header = "Allt innan <div id="contenttext">";
$content = "<div id="contenttext"> <!--content--> </div>";
$sidebar = "<div id="leftpanel"> <!--sidebar--> </div>";
$footer = "Allt efter <div id="leftpanel"> <!--sidebar--> </div>";
Kommentera