preg_match_all сбивает с толку неудачу - PullRequest
1 голос
/ 14 января 2011
$string = (string) file_get_contents($_FILES['file']['tmp_name']);

echo $string;

// Correctly echos string contents

preg_match_all("/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $string, $matches);

print_r($matches);

// No matches

Я анализирую текстовые / CSV-файлы и получаю адреса электронной почты из загруженных файлов. При разборе файла контактов Google я экспортировал его странным образом не удается. Но когда я просто копирую строку echo'd и вставляю ее вместо результата file_get_contents, она анализируется и работает.

Есть идеи, почему он отказывается принимать строку file_get_contents, но если я сам вставлю исходные данные, это сработает?

1 Ответ

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

$_FILES['file']['tmp_name'] - это временный загруженный файл, прежде чем вызывать file_get_contents, сначала нужно перейти в каталог, например

$tmp_file = '/tmp/test.csv'
move_uploaded_file($_FILES['file']['tmp_name'], $tmp_file);
$string = file_get_contents($tmp_file);
...