$sitemap_index = array( 'https://www.example.com/sitemap1_index.xml.gz', 'https://www.example.com/sitemap2_index.xml.gz' ); // 代理和特定header $proxy = 'http://your-proxy-server.com:8080'; $header = array( 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36' );用这段已知代码,如何用PHP的输出2个index.xml.gz各自<loc>标签中的内容
时间: 2023-06-05 12:07:50 浏览: 147
您可以使用以下代码:
```php
$sitemap_index = array(
'https://www.example.com/sitemap1_index.xml.gz',
'https://www.example.com/sitemap2_index.xml.gz'
);
$proxy = 'http://your-proxy-server.com:8080';
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36'
);
foreach ($sitemap_index as $sitemap_url) {
// 发送请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sitemap_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$response = curl_exec($ch);
curl_close($ch);
// 解析XML并输出<loc>标签中的内容
$sitemap_xml = gzdecode($response);
$xml = simplexml_load_string($sitemap_xml);
foreach ($xml->sitemap as $sitemap) {
echo (string)$sitemap->loc . "<br/>";
}
}
```
这段代码会循环遍历$sitemap_index数组中的两个元素,发送请求获取对应的XML文件,然后解析XML并输出<loc>标签中的内容。请注意,如果代理服务器需要用户名和密码认证,您需要在curl_setopt函数中设置CURLOPT_PROXYUSERPWD选项。
阅读全文
相关推荐



















