Чтение текстового файла в сети с помощью php

#php #file-get-contents #txt

#php #file-get-contents #txt

Вопрос:

Мне нужно прочитать и проанализировать txt файл в сети с помощью PHP.

«Предупреждение: file_get_contents(file//10.0.2.129/lims/lims.txt ): не удалось открыть поток: нет такого файла или каталога в C:AppServwwwmailindex.php на линии 2»

Таким образом, я получаю сообщение об ошибке.

 <?php
$txt_file = file_get_contents('file//10.0.2.129/lims/lims.txt');

function sp($x) {
    return preg_split("/ss |s*((d{4}).*)/", $x,0,PREG_SPLIT_DELIM_CAPTURE);
}

$array = preg_split("/n/", $txt_file);
$processed = array_map('sp', $array);

print_r(json_encode($processed));
?>
  

Комментарии:

1. file// недопустимый протокол

2. итак, как я могу сделать

3. Для начала используйте действительный протокол

4. Вам не хватает двоеточия:попробуйте file:// See php.net/manual/en/wrappers.php для действительных протоколов

Ответ №1:

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

 \\10.0.2.129\lims\lims.txt
  

Комментарии:

1. Предупреждение: file_get_contents(\10.0.2.129limslims.txt ): не удалось открыть поток: отказано в разрешении в C:AppServwwwmailindex.php в строке 2

2. я думаю, вам нужно сначала разрешить разрешение

3. я не знаю, как разрешить

Ответ №2:

file_get_contents может использоваться с локальными файлами или через протоколы (перечислены здесь: https://www.php.net/manual/wrappers.php )

В вашем примере вы пропустили «:» между «file» и «//». И, исходя из IP-адреса, ваш файл находится на общем диске, поэтому вы должны добавить сетевой префикс \ раньше.

Так и должно быть file_get_contents('file://\\10.0.2.129/lims/lims.txt') . Поскольку «file: //» является протоколом по умолчанию, вы можете удалить его только для сохранения file_get_contents('\\10.0.2.129/lims/lims.txt')

Комментарии:

1. Можем ли мы использовать что-то другое вместо file_get_contents?

2. Чтобы прочитать файл? Да, посмотрите на комбинации fopen, fread и fclose: php.net/manual/fr/function . fread.php , первый пример

Ответ №3:

попробуйте использовать file_get_contents(‘./lims/lims.txt ‘); но убедитесь, что вы выбрали правильный путь в зависимости от местоположения, из которого вы вызываете эту функцию.

Комментарии:

1. Вопрос заключается в чтении файла из сети, а не из того же каталога, что и скрипт