我正在为一所大学创建一个网站,我们必须将该大学的主要导航包含在页面顶部。我想要动态加载导航,而不是重新创建导航。
首先我想我可以使用iframe并将其修剪为导航。
但是,当点击链接时,它会在该框架中打开,当我想要在新窗口中显示时。
所以,我的新计划是用curl拉入导航(或者如果有人有建议,则以其他方式)。什么是最好的方式来解决这个问题?卷曲时相当新,所以我喜欢一些代码。
谢谢!
答案 0 :(得分:0)
如果您想使用cURL检索它,可以在cURL的网站上使用此示例:http://curl.haxx.se/libcurl/php/examples/simpleget.html。
或者,您可以使用PHP的readfile函数直接将文件(本地或外部)读入页面,或使用file_get_contents函数将其加载到变量中(然后您可以在输出之前对其进行操作)它到页面。)
答案 1 :(得分:0)
我最近在客户的现有网站上做了这个黑客攻击。
在大学网站中创建一个包含所需标题和导航的“布局视图”。除了一个标志之外,使主体变空,该标志将告诉解析器脚本在哪里插入内容。
<div class="nav">
<!-- ... -->
</div>
<div class="body">
<!-- Below is the flag -->
{content}
</div>
使用以下代码导入布局HTML,将页面HTML插入其中,然后输出
// Variables
$contentForLayout = '<p>This is the page content</p>'
$pageTitle = 'Test Page';
$layoutUrl = 'http://'.$_SERVER['HTTP_HOST'].'/unilayout'; // AFAIK, cURL like the host to be there
// Get layout HTML
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $layoutUrl);
curl_setopt($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec($ch);
curl_close($ch);
$layoutHtml = ob_get_contents();
ob_end_clean();
// Insert your page HTML into the layout HTML
$layoutHtml = str_replace('{content}', $contentForLayout, $layoutHtml);
// Insert your page title into the layout HTML
$layoutHtml = preg_replace('%<title>[^<]*</title>%si', '<title>'.h($pageTitle).'</title>', $layoutHtml);
// Output
print $layoutHtml;
答案 2 :(得分:0)
您可以尝试使用此库http://github.com/shuber/curl并使用正则表达式或html解析器解析卷曲响应正文中的导航