2016-09-22 6 views
0

私は明るいスパークが私を助けてくれることを願っています。私は、Apache Webサーバー(Raspberry Pi 2)上に構築しているサイトを持っています。私はPHPでサイトをコーディングしています。apache php javascript - ストリームを開くことに失敗しました:/ var/www/html/blaにそのようなファイルやディレクトリがありません

Index.phpには、私が書いた単純なjQueryスクリプトを使用して更新されたdivがあります。

times.phpは、index.phpのdivの中で生きて時刻を表示する関数を呼び出す/functions/time_func.phpが含ま/include/start/times.php

Index.phpが含まれています。

jQueryは10秒ごとに更新されます。

最初にページを読み込むと、divが正しく表示されます。 jQueryが10秒後に実行されると、divはタイトルのエラーで埋められます。私はまた、以下のこのエラーを受け取ります:

Warning: include(): Failed opening 'functions/times.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') 

私はサーバのパーミッションとそれ以外は私が考えることができるものを見てきました。私は誰かがこれが今私に非常に不満を引き起こしているのを助けることができると願っています。

興味深いことに、私は私のウェブサイトのルートに関連するすべてのファイルをダンプし、インクルージョンパスを変更した場合、すべてが正常に動作します: -/

ここではいくつかのファイルの内容です:

のindex.php:

<html> 
<head lang="en"> 
<meta charset="UTF-8"> 
<link href="css/style.css" rel="stylesheet"> 
<script src="js/jquery-2.1.3.min.js"></script> 
<script> 
function updateLeft() { 
var url = "include/start/times.php"; 
jQuery("#left").load(url); 
} 
setInterval("updateLeft()", 5000); 
</script> 
</head> 
<body style="overflow-y: hidden;"> 
<?php 
    include 'include/start/times.php'; 
?> 
</body> 
</html> 

times.php:

<div id="left"> 
    <p class="no-margin text-shadow">Times: <br><br><span class="text-bold" id="pressure"> 
    <?php 
     include 'functions/time_func.php'; 
     times(); 
    ?> 
    </span></p> 
</div> 

time_func.php:

<?php 

    // Define the cURL function 
    function curl($url) { 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20160904 Firefox/4"); 
     $page = curl_exec($ch); 
     curl_close($ch); 
     return $page; 
    }  

    function times(){ 
     $x_data = curl("http://mysite.james.com/test_sceh.html"); 
     $doc = new DOMDocument(); 
     $doc->loadHTML($x_data); 
     $sec1 = $doc->getElementsByTagName('td')->item(0); 
     $time1 = $doc->getElementsByTagName('td')->item(4); 
     $sec2 = $doc->getElementsByTagName('td')->item(6); 
     $time2 = $doc->getElementsByTagName('td')->item(10); 
     $sec3 = $doc->getElementsByTagName('td')->item(12); 
     $time3 = $doc->getElementsByTagName('td')->item(16); 
     $xtime = $sec1->nodeValue . ' - ' . $time1->nodeValue . '<br>' . $sec2->nodeValue . ' - ' . $time2->nodeValue . '<br>' . $sec3->nodeValue . ' - ' . $time3->nodeValue . '<br>'; 
     print_r($xtime);   
    } 
?> 
+0

エラーから、そこにはないファイルを含めるように見えます。 – adeneo

+0

こんにちはマークですが、ファイルはそこにあり、ページが最初に読み込まれたときに実行されます。その後jQueryがdivを更新しようとすると、そこにないように動作します... – JamesPy

+0

Index.php、times.php、およびtime_func.phpの内容を投稿できますか? – Pipe

答えて

0

これは、パスが同じ方法で解決されないために発生します。あなたがパスを含む場合

初めてのページをロードすると、それはすべて私が「機能」を推測index.php から始まるがinclude

と同じレベルである彼らは祖先への相対的なもので、相対的なものです。 したがって、ページをロードするときはindex.phpに相対的ですが、ajaxリクエストを実行するとtimes.phpに相対的です。

functionsinclude/startのサブフォルダではないので、それは同じファイルが別の親フォルダから含まれているシナリオのこの種については、time_func.php

を見つけることができない、あなたは絶対パスを使用する必要があります。

何かのように:

<?php include $_SERVER['DOCUMENT_ROOT'].'/include/start/times.php'; ?>

<?php include $_SERVER['DOCUMENT_ROOT'].'/functions/time_func.php'; ?>

やコース、あなたはvar urlで使用相対パスを変更しないでください、それはのルートからの相対的なままにする必要がありますホスト名

+0

もちろん...私はこれ以外のすべてを見ていましたが、私はばかげています。 あなたのご意見をお寄せいただきありがとうございました。 – JamesPy

+0

この頻繁なエラーのトラブルシューティングチェックリストがあります:https://stackoverflow.com/questions/36577020/php-failed-to-open-stream-no-such-file-or-directory –

関連する問題

 関連する問題