Приложение сохраняет файл в корневой каталог, а не в подпапку темы - PullRequest
0 голосов
/ 14 января 2011

Я установил сканер в Wordpress, который собирает данные о запасах и записывает их в файл. Когда пользователь вводит символ / тикер, если он соответствует данным предыдущего сканирования для данных этой конкретной компании, он отображает текстовый файл на странице. Если данные не найдены, сканер берет их и записывает в файл для сохранения при следующем использовании этого символа.

Проблема, с которой я столкнулся, заключается в том, что когда содержимое записывается в файл, оно сохраняет его в корне Wordpress, а не в подпапке темы, как предполагалось. Я попробовал bloginfo и абсолют; оба возвращают одну и ту же ошибку.

Это код, который я использую для записи в файл:

<?php
$CompDetails = "http://another.example.org/mattv1/wp-content/themes/stocks/tools/modules/Stock_Quote/company_details/$Symbol.txt"; 

if (file_exists($CompDetails)) {}
else
{
include ('crawler_file.php');
$html = file_get_html("http://example.com/?ticker=$Symbol:US");
$es = $html->find('div[class="detailsDataContainerLt"]');
$tickerdetails = ("$es[0]");
$FileHandle2 = fopen($CompDetails, 'w') or die("can't open file");
fwrite($FileHandle2, $tickerdetails);
fclose($FileHandle2);
}
?>

изменить ниже

Я тоже пробовал это и происходит то же самое, что и выше

<?php

if (file_exists($_SERVER['DOCUMENT_ROOT'] . "/wp-content/themes/stocks/tools/modules/Stock_Quote/company_details/$Symbol.txt")) {}  
else  
{  
include ('crawler_file.php');  
$html = file_get_html("http://example.com/?ticker=$Symbol:US");  
$es = $html->find('div[class="detailsDataContainerLt"]');  
$tickerdetails = ("$es[0]");  
$FileHandle2 = fopen($_SERVER['DOCUMENT_ROOT'] . "/wp-content/themes/stocks/tools/modules/Stock_Quote/company_details/$Symbol.txt", 'w') or die("can't open file");  
fwrite($FileHandle2, $tickerdetails);  
fclose($FileHandle2);  
}  
?>  

Ответы [ 2 ]

0 голосов
/ 14 января 2011

Вот где я сейчас нахожусь:

  • Я создал папку в загрузках и назвал ее "company_details",
  • Разрешения на запись установлены на 777 для папки загрузки и компаниипапку с данными и
  • Я использовал этот код:
$CompDetails = wp_upload_dir();   
if (file_exists($CompDetails['basedir'].'/company_details/'.$Symbol.txt))  
{}  
else  
{  
include ('crawler_file.php');  
$html = file_get_html("http://example.com/?ticker=$Symbol:US");  
$es = $html->find('div[class="detailsDataContainerLt"]');  
$tickerdetails = ("$es[0]");  
$FileHandle2 = fopen($CompDetails, 'w') or die("can't open file");  
fwrite($FileHandle2, $tickerdetails);  
fclose($FileHandle2);  
}  

Он больше не записывает файл в корневой каталог, но теперь выбрасывает «не удается открыть»файл "ошибка

0 голосов
/ 14 января 2011

Это, вероятно, какая-то проблема с правами доступа к файлам. Кроме того, вам в любом случае было бы намного лучше использовать каталоги загрузки WordPress, так как в любом случае он должен быть доступен для записи.

Используйте wp_upload_dir(), чтобы получить путь загрузки. Возвращаемое значение будет массивом с данными, относящимися к датированным папкам (которые вам не нужны), но вы можете получить оттуда имя базового каталога загрузок, а затем использовать информацию для создания своей собственной папки 'ticker_data' для хранения ваших данных. в.

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