2013-08-22 3 views
1

У меня есть массив $urls_array, как сохранить содержимое, а не что-нибудь еще в файл?Сохранить только содержимое массива php в файл

ВХОД:

Array (
    [0] => "http://google.com" 
    [1] => "http://facebook.com" 
    [2] => "http://yahoo.com" 
) 

ВЫВОД:

http://google.com 
http://facebook.com 
http://yahoo.com 

Я попытался с помощью json_encode($urls_array) и serialize() и print_r(), но ничего не дал мне чистый результат я хотел. Любая помощь?

+0

Что относительно file_put_contents? –

+0

попробовал это тоже, но в основном сохраняет весь массив массива «Array» ([0] => », а не только URL – user1899415

ответ

3

Вы пытались file_put_contents?

file_put_contents('filename', join("\n", $your_array)); 

выше есть только небольшая проблема: если массив большой, он будет преобразован в длинную строку перед записью в файл в целом. Чтобы избежать этой памяти интенсивной работы, цикл по массиву и записи каждого элемента в файл последовательно:

if(($f = fopen("filename","w")) !== FALSE) { 
    array_walk($your_array, function($item) use($f) { fwrite($f, $item . "\n"); }); 

    // or, with an implicit loop 
    // foreach($your_array as $item) fwrite($f, $item . "\n"); 
} 
+0

@NoIdeaForName: какой комментарий? Вы пробовали мой код? – knittl

+0

это работает! Угадайте, есть волшебство с соединением («\ n»), которую я раньше не использовал ... genius thanks! – user1899415

+0

@knittl не тот, который отредактировал no. он работает нормально –

2

попробуйте этот код его 100% рабочий ...

<?php 
    $data=array("http://google.com","http://facebook.com","http://yahoo.com"); 
    $fp = fopen('file.txt', 'w'); 
    foreach($data as $key => $value){ 
    fwrite($fp,$value."\t"); 
    } 
    fclose($fp); 
    ?> 
+0

OP только хочет элементы массива в своем файле, а не структуру массива. – knittl

+0

@ knittl попробуйте отредактированный код .. –

+0

теперь он работает на 100% :) – knittl

1

Попробуйте это ..

<?php 
    $arr=array("ABC","DEF","GHI"); 
    $fp=fopen("test.txt","w+"); 
    foreach($arr as $key => $value){ 
    fwrite($fp,$value."\t"); 
    } 
?> 
0

Попробуйте это:

<?php 
$myArray = Array(0 => "http://google.com", 1 => "http://facebook.com", 2 => "http://yahoo.com"); 
foreach($myArray as $value){ 
    file_put_contents("text.txt", $value."\n", FILE_APPEND); 
} 
?> 

Основной benifit из file_put_contents является то, что это эквивалентно вызова fopen() + fwrite() + fclose(), так и для простых задач, как это, может быть очень полезным.

Вы можете найти руководство пользователя ->HERE.

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