我试图找出它是否可能&使用什么代码:加载当前页面的内容,并使用PHP或PHP Simple Html DOM Parser.
回显出“#navbar a”中特定页面(c.html)的相对路径到目前为止我的代码:
<?php
$pg = 'c.html';
include_once '%resource(simple_html_dom.php)%';
/* $cpath = $_SERVER['REQUEST_URI']; Old version */ // Path to current pg from root
$cpath = "http://www.".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
echo var_dump($cpath).": Current Root Path"."<br />"; // "http://www.partiproductions.com/copyr/index.php" - Correct
$cfile = basename($cpath);
echo 'Current File: ' . $cfile . "<br />"; // "index.php" - Current pg, Correct
$html = file_get_html($cpath); // Getting Warning: URL file-access is disabled in the server configuration & failed to open stream: no suitable wrapper could be found in.. & Fatal error: Call to a member function find() on a non-object in...
foreach($html->find(sprintf('#navbar a[href=%s]', $pg)) as $path) {
echo 'Path: ' . $path."<br />";
}
?>
答案 0 :(得分:1)
您遇到的主要问题是调用file_get_html($ cfile)。
您的示例中的当你将它传递给file_get_html()时,它将在服务器的根目录中查找目录/ copyr,并在其中查找index.php文件。根据您已指明的警告,您实际上并未在服务器的根目录中拥有此文件夹结构。
您实际需要做的是在您当前拥有的URI前面加上完整的网址,例如:
$cpath = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
这将产生如下路径:http://www.yourserver.com/copyr/index.php您应该为file_get_html()工作;
答案 1 :(得分:0)
根据提问者的最新信息,我会采用不同的方法。
创建一个新文件,其中仅包含您希望在两个文件之间共享的内容。然后,在两个文件中(或稍后,如果需要)使用include()函数从新共享内容文件中注入内容。
index.php文件:
<?php
//Any require PHP code goes here
?>
<html>
<body>
<?php include('sharedfile.php');?>
</body>
</html>
/copyr/c.php文件:
<?php
//Any require PHP code goes here
?>
<html>
<body>
<?php include('../sharedfile.php');?>
</body>
</html>
<强> sharedfile.php:强>
// You need to close the PHP tag before echoing HTML content
?>
<p>
This content is displayed via include() both on index.php and /copyr/c.php
</p>
<?php // The PHP tag needs to be re-opened at the end of your shared file
这里的好处是,您现在可以通过遵循相同的技术在您的站点中的任何文件中使用sharedfile.php文件内容。您也不需要解析页面的DOM来删除要在多个页面上显示的内容,这可能很慢且容易出错。