Невозможно создать каталог в php - PullRequest
0 голосов
/ 31 января 2012

Я пробовал этот учебник для чтения RSS-каналов с помощью php-файла и его кеширования.Я скопировал и вставил исходный код в свой собственный проект.Я использую XAMPP на Mac OS X.

Вот источник:

Прежде всего, я не могу создать каталог с помощью mkdir.В нем говорится, что разрешение запрещено.
Во-вторых, $feed = file_get_contents($path, true); не возвращает объект php.Я имею в виду, когда я проверяю это с помощью if ( is_object($feed) && $feed->query->count ), я не могу дозвониться.
Наконец, я не могу $cachefile = fopen($cache, 'wb');

<?php

$cache = dirname(__FILE__) . "/cache/feed";
echo filemtime($cache);
if(filemtime($cache))
{
   // Get from server
   if ( !file_exists(dirname(__FILE__) . '/cache') ) {
      mkdir(dirname(__FILE__) . '/cache', 0777);
   }
   // YQL query (SELECT * from feed ... ) // Split for readability
   $path = "http://query.yahooapis.com/v1/public/yql?q=";
   $path .= urlencode("SELECT * FROM feed WHERE url='http://feeds.hindustantimes.com/HT-HomePage-TopStories'");
   $path .= "&format=json";

   // Call YQL, and if the query didn't fail, cache the returned data
   $feed = file_get_contents($path, true);
   print_r($feed);

   // If something was returned, cache
   if ( is_object($feed) && $feed->query->count ) {
      $cachefile = fopen($cache, 'wb');
      fwrite($cachefile, $feed);
      fclose($cachefile);
      echo 'writing to disk';
   }
}
else
{
   // We already have local cache. Use that instead.
   $feed = file_get_contents($cache);
}

// Decode that shizzle
$feed = json_decode($feed);

print_r($feed);
// Include the view
//include('views/site.tmpl.php');

?>

1 Ответ

1 голос
/ 31 января 2012

Уверен, XAMPP работает как пользователь "nobody", поэтому вам нужно будет дать "никому" разрешения на каталоги, которые вы хотите записать:

chown nobody:nobody dir_in_question

Имейте в виду, что XAMPPотличный dev-сервер, но он небезопасен из коробки, поэтому будьте осторожны с его использованием в производстве.См. эту статью для соответствующих вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...