0

現在のページのコンテンツをロードし、PHP またはPHP Simple Html DOM パーサー。

これまでの私のコード:

<?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 />";
}
?>
4

2 に答える 2

1

主な問題は、file_get_html($cfile) への呼び出しにあります。

あなたの例の $cfile には /copyr/index.php のようなものが含まれます

これを file_get_html() に渡すと、サーバーのルート ディレクトリにある /copyr ディレクトリと、その中の index.php ファイルが検索されます。あなたが示した警告に基づいて、実際にはサーバーのルートにこのフォルダー構造がありません。

実際に行う必要があるのは、次のように、現在持っている URI の前に完全な URL を含めることです。

$cpath = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

これにより、次のようなパスが生成されます: http://www.yourserver.com/copyr/index.phpこれで file_get_html();

于 2012-11-06T19:11:15.497 に答える
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>

共有ファイル.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 を解析して、複数のページにまたがって表示したいコンテンツを削除する必要もありません。これは、処理が遅く、エラーが発生しやすくなる可能性があります。

于 2012-11-09T18:13:01.443 に答える