2009-11-21 6 views
1

У меня есть текстовый файл со спам-словами. Я хочу иметь массив, заполненный этими словами. Я пробовал делать:PHP получить массив слов из txt-файла

$fp = @fopen("../files/spam.txt",'rb'); 
$words = fgetcsv($fp,100,"\n"); 

, но он не работает (слова имеет только первую букву текстового файла в нем первой ячейки).

Вы как это сделать?

EDIT: файл .txt выглядит следующим образом:

yahoo 
google 
msn 
blah 
blah 

EDIT: Я не знаю, что ЭТО CSV файл! ЭТО ФАЙЛ ТЕКСТА! Я ПРОСТО ПРИМЕР.

Пожалуйста, помогите мне, это выглядит очень легко, я просто не понимаю.

+0

ваш текстовый файл в формате CSV , или одно слово в каждой строке? –

+0

Существуют разные способы сделать это в зависимости от формата форматированного текстового файла. –

+0

Вы можете дать нам образец spam.txt файла – Galen

ответ

1

Это не файл CSV. CSV означает значения, разделенные запятыми. У вас нет запятых!

$spam_words = file('../files/spam.txt', FILE_IGNORE_NEW_LINES); 
+0

спасибо, я просто не понял, какой из них я должен использовать, кроме того, что каждый здесь рекомендует что-то еще, это действительно запутывает «CSV! CSV! Это CSV!» - Боже, ты не видишь, что я новичок? – Gal

+0

вы сказали нам, что это был csv =) – Galen

0

Как насчет разделения строки, которую вы читаете из файла, в массив?

split() function definition.

$string = "Niagara Becks Corn"; 
$array = split(" ", $string); 
# ["Niagara", "Becks", "Corn"] 
+0

вы также можете использовать функцию взрывать – yoda

0

Используйте функцию «файл», чтобы прочитать файл PHP с диска в массив. Смотрите руководство здесь: http://php.net/manual/en/function.file.php

+0

нет, если он в формате csv – Galen

+0

Не похоже на csv для меня. – TheGrandWazoo

+0

OP не знает, что такое csv, по-видимому =) – Galen

1

Все, что вам нужно сделать, это:

$words = file('./files/spam.txt',FILE_IGNORE_NEW_LINES); 
0

Попробуйте

$file = file_get_contents('spam.txt'); 
$file_words = explode(" ", $file); 
$file_count = count($file_words); 

for ($i=0; $i < $file_count; $i++){ 
    echo $file_words[$i] . "<br />"; 
} 

Ваш spam.txt файл должен выглядеть следующим образом:

Yahoo MSN Google

1
$artic = array(); //create a array 
$directory = "/var/www/application/store/"; //define path 
$files1 = scandir($directory); //scan the directory 
$c = count($files1); //count the files the directory 

print $c; //print it 

    for($i = 2; $i < $c; $i++) { 
    print "<br />" . $files1[$i]; 
    $f = $directory . $files1[$i]; 
    print $f . "<br />"; 
    $h = fopen($f, 'r') or die("cannot open a file!!". $f); 
    $line1 = fgets($h); 
    list($id, $idval) = explode("\t\t", $line1); 
    print "$id"; 
    } 
+0

Я столкнулся с вопросом, который искал что-то, и заметил ваш ответ в то же время. Существует либо дополнительная, либо отсутствующая цитата для '' $ line1) ' –

+0

Спасибо Fred ii, я сделал исправление. Там одна из двойной цитаты была лишней, я удалил сейчас. –

+0

Добро пожаловать в Harshan. –

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