常見問題

                                                                                  php 實現sitemap地圖生成xml格式-襄陽網站開發公司分享

                                                                                  常見問題

                                                                                  2625

                                                                                  字體:

                                                                                  使用php 實現sitemap地圖生成,帶頭過濾空鏈接去除等操作,拿到就可用使用,如果需要循環子頁面可寫循環即可使用,


                                                                                  
                                                                                  use DOMDocument;
                                                                                  use DOMXPath;
                                                                                  
                                                                                  // 創建 XML 文件
                                                                                  $xml = new DOMDocument('1.0', 'utf-8');
                                                                                  $xml->formatOutput = true;
                                                                                  
                                                                                  // 創建根節點和 xmlns 屬性
                                                                                  $urlset = $xml->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset');
                                                                                  $urlset->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:image', 'http://www.google.com/schemas/sitemap-image/1.1');
                                                                                  $xml->appendChild($urlset);
                                                                                  
                                                                                  // 獲取頁面鏈接地址
                                                                                          $url = 'http://www.w6166.cn';
                                                                                          $html = file_get_contents($url);
                                                                                  $dom = new DOMDocument();
                                                                                  
                                                                                  @$dom->loadHTML($html);
                                                                                  
                                                                                  $xpath = new DOMXPath($dom);
                                                                                  
                                                                                  $links = $xpath->query('//a/@href');
                                                                                  
                                                                                  // 整理鏈接地址
                                                                                  $urls = array();
                                                                                  foreach ($links as $link) {
                                                                                      $href = $link->nodeValue;
                                                                                      $href=str_replace(' ', '', $href);
                                                                                      if ($href == 'javascript:void(0)' || $href == 'javascript:;' ){
                                                                                          continue;
                                                                                      }
                                                                                      $preg = "/^tel?:/";
                                                                                      if (preg_match($preg, $href)){
                                                                                          continue;
                                                                                      }
                                                                                      $preg = "/^http(s)?:\\/\\/.+/";
                                                                                      if(preg_match($preg,$href)){
                                                                                          continue;
                                                                                      }else{
                                                                                          $href=$url.$href;
                                                                                      }
                                                                                  
                                                                                  
                                                                                      // 去掉鏈接末尾的斜杠
                                                                                      $link = rtrim($href, '/');
                                                                                  
                                                                                      // 去除重復鏈接
                                                                                      if (in_array($link, $urls)) {
                                                                                          continue;
                                                                                      }
                                                                                  
                                                                                      $urls[] = $link;
                                                                                  }
                                                                                  
                                                                                  // 添加鏈接地址到 XML 文件中
                                                                                  foreach ($urls as $url) {
                                                                                      $url_node = $xml->createElement('url');
                                                                                      $loc_node = $xml->createElement('loc', $url);
                                                                                      $url_node->appendChild($loc_node);
                                                                                      $urlset->appendChild($url_node);
                                                                                  }
                                                                                  // 輸出 XML 文件內容
                                                                                  echo $xml->saveXML();


                                                                                  [聲明]原創不易,請轉發者備注下文章來源(hbsjsd.cn)【速建時代】。

                                                                                  亚洲中文字幕在线19页_99久久国产精品免费热7788_欧美专区日韩专区综合专区_小泽玛利亚一区_gogo999亚洲肉体艺术