2017-11-18 7 views
0

私は更新したいウェブサイト(フッター、ヘッダー、ペイパルフォームなど)のすべての部分に<?php readfile("http://www.website.com/footer.php");?>を使用する代わりに、はすべて部分phpファイルを作成し、そのファイルの特定の行をhtmlにエコーします。htmlを含むphpファイルのエコー特定の行

<header id=header><div class=logo><img src="/assets/images/name.png" alt="Pablito Greco logo" width=130 height=130 /></div><div class=content><div class=inner><h1>Pablito Greco</h1><p>Inspiring Artist &amp; Entrepreneur</p></div></div><nav><ul><li><a href="/#Xtango" title="Xtango">Xtango</a></li><li><a href="/#Ebook" title="Book">Book</a></li><li><a href="/classes/#c" title="Classes">Classes</a></li><li><a href="/blog/#b" title="Blog">Blog</a></li><li><a href="/#Connect" title="Connect">Connect</a></li></ul></nav></header> 

    <article id=thankyou><h3 class=major>Thank you</h3><br><br><p><span class="inside"></span>&nbsp;Pablito Greco will promptly follow up with you. Check our projects:<br><br><a href="/classes/#c" title="Toronto Xtango Classes"><span class=url>Toronto Xtango Classes</span></a><br><a href="/tango-night-secrets/#t" title="Tango Night Secrets"><span class=url>Tango Night Secrets</span></a><br><a href="/blog/#b" title="Toronto Tango Blog"><span class=url>Toronto Tango Blog</span></a><br><a href="/gift/#g" title="Gift Certificates"><span class=url>Gift Certificates</span></a><br><a href="/radios/#r" title="Tango Radios"><span class=url>Tango Radios</span></a><br><a href="/links/#l" title="Tango Links"><span class=url>Tango Links</span></a></p></article> 

    <form action="https://www.paypal.com/cgi-bin/webscr" method=post target=_blank class=""><input class=special type=submit value=Buy name=submit title="Buy with PayPal"><div class=special2><input class=special3 type=hidden name=cmd value=_s-xclick><input type=hidden name=hosted_button_id value=XXXXXXXXXXX><input type=hidden name=currency_code value=CAD><select name=os0 title="Click and select"><option value="Select:">Select&nbsp;&nbsp;&nbsp;&#x25BC;</option><option value="6 Xtango Group">6 Xtango Group 119</option><option value="12 Xtango Group">12 Xtango Group (+ ebook) 229</option><option value="3 Xtango Private">3 Xtango Private 299</option><option value="6 Xtango Private">6 Xtango Private (+ ebook) 589</option></select></div></form> 

    <div class=kato id=kato><a href= rel=nofollow target=_blank title="Youtube"><span class="url urlfooter" title="Subscribe!">YouTube</span></a>&nbsp;&nbsp;<a href= rel=nofollow target=_blank><span class="url urlfooter" title="Tweet-Tweet!">Twitter</span></a>&nbsp;&nbsp;<a href= target=_blank ><span class="katoradios radio"></span></a>&nbsp;&nbsp;<a href= rel=nofollow target=_blank title="Facebook"><span class="url urlfooter" title="Like!">Facebook</span></a>&nbsp;&nbsp;<a href=/sitemap target=_blank title="Site Map"><span class="url urlfooter">Site Map</span></a></div> 
+0

関数$ get_header、$ get_article、$ get_paypal_form、および$ get_katoを持つPHPファイルが必要ですか?次に、各機能が特定の部分をエコーするようにします。最後に、include()を1つだけ使用しますか? – SynchroDynamic

+0

それは実際にはあまりにも働いた! – NickDimou

答えて

0

あなたは、PHPを使用してHTML要素をこすり、その後、新しいHTMLファイルに掻き取っHTML要素を節約するために探しているように見えます。これを行う良い方法は、DomDocumentクラスとxpathクエリを使用して要素を見つけることです。次に、新しいhtmlドキュメントを作成し、見つかった要素を新しいドキュメントに追加し、ファイルに保存します。例:

<? 
//create array of element tags to be scraped from target url 
$elements = ["header", "div"]; 
//get html from target url 
$html = file_get_contents('http://www.nytimes.com'); 

//instantiate new instance DOMDocument for target html. 
$dom = new DOMDocument(); 
libxml_use_internal_errors(TRUE); //disable libxml errors 
$dom->loadHTML($html); 
libxml_clear_errors(); 
//instantiate DOMXPath for the ability to do xpath queries. 
//xpath is powerful for this example using basic query can be used to query by class id etc 
//DOMDocument powerful too. Read documents here: http://php.net/manual/en/class.domdocument.php 
$xpath = new DOMXPath($dom); 

//instantiate DOMDocument for new HTML document where founds elements from target will be saved to. 
$new_dom = new DOMDocument(); 
$new_dom->formatOutput = true; 
//save basic html element to document 
$new_dom->loadXML("<html></html>"); 
$new_dom->saveXML(); 

//iterate over $elements array 
foreach($elements as $element){ 
    //query by xpath for the element 
    $element_node = $xpath->query("//".$element); 
    //iterate over found elements and add to the new html document 
    foreach($element_node as $row){ 
     $node = $new_dom->importNode($row, true); 
     $new_dom->documentElement->appendChild($node); 
     $new_dom->saveXML(); 
    } 
} 
//save found elements to new html document 
$new_dom->save('test.html'); 
+0

私にとってはまったく新しい世界ですが、答えは有効であり、さらに可能性を理解するのに役立ちました。ありがとうございました。 – NickDimou

+0

問題ありません!お力になれて、嬉しいです。 – user3277225

関連する問題