2015-07-10 13 views
1

Я использую file_put_contents для создания и добавления информации в файл json. Это работает успешно, однако мне нужно создать два файла с разными именами (title.json и dates.json) - это возможно?Php file_put_contents с несколькими файлами

Причина, по которой мне нужно это сделать, заключается в том, что я использую twitter typeahead и, похоже, работает только с отдельными json-файлами.

Он работает с одним файлом i.e;

file_put_contents (URL. '/Title.json', json_encode ($ data));

Однако не с этим;

file_put_contents (URL '/title.json', '/dates.json', json_encode ($ данные).);

Я получил следующее сообщение об ошибке;

Предупреждение: file_put_contents() ожидает параметр 3, чтобы быть длинным, строка приведены в C: \ XAMPP \ HTDOCS ... на линии 23

$sql = ("SELECT DISTINCT pub_id, title, place_name, party_name, publication_date FROM vw_ft_search"); 

$data = array(); 

while($row = $result->fetch_assoc()) 
{ 
    $data[] = array('title' => utf8_encode($row['title']), 
        'pub_id' => utf8_encode($row['pub_id']), 
        'place_name' => utf8_encode($row['place_name']), 
        'party_name' => utf8_decode($row['party_name']), 
        'publication_date' => $row['publication_date']); 
} 

file_put_contents(URL . '/title.json','/dates.json', json_encode($data)); //line 23 

Я, вероятно, missig что-то очень легко , любые советы приветствуются.

ответ

1

file_put_contents принимает только один файл. Используйте цикл для вставки во всех файлах ->

$files = array('/title.json', '/dates.json'); 

затем перебирать $ файлы:

foreach($files as $file) 
{ 
    file_put_contents(URL.$file, json_encode($data)); 
} 
+0

благодаря @SidiaStudios я попробовал то, что вы предложили, однако теперь я получаю ошибку 'Warning: file_put_contents (/ даты .json): не удалось открыть поток: разрешено в C: \ xampp \ htdocs \ ... в строке 27' –

+0

У вас нет разрешения на запись в /dates.json (который будет сервером basefolder -> date.json) Возможно, вы имели в виду URL. '/ Date.json' тоже? –

+0

Да, я должен был ввести '$ files = array (URL. '/Title.json', URL. '/Dates.json');' для того, чтобы заставить его работать - может спасибо! –

Смежные вопросы