2016-12-30 5 views
0

У меня есть текстовый файл, который собирается использовать в качестве конфигурационного файла и его расширение .txtPHP Выберите определенную часть текстового файла

Текстовый файл

#Config 

<licence> 
Licence Key 
</Licence> 

<Name> 
Company Name 
</Name> 

Так что мне нужно PHP только читать содержимое внутри тегов, я не знаю, возможно ли это, мне удалось использовать сценарий ниже, который возвращает весь файл.

<?php 
$myfile = fopen("config.txt", "r") or die("Unable to open file!"); 
echo fread($myfile,filesize("config.txt")); 
fclose($myfile); 
?> 
+0

Вы можете не только «прочитать содержимое в тегах». Никто не знает, где находится тег, пока вы не прочитаете весь файл, чтобы вы могли искать все вхождения тегов. – SOFe

+0

Прочтите это http://php.net/manual/en/function.parse-ini-file.php – RiggsFolly

+1

Или сделайте его полным XML-файлом и используйте читатель XML-документов – RiggsFolly

ответ

1

Рассмотрите возможность использования регулярных выражений.

Например:

preg_match_all('%<([A-Za-z]+)>([.\n]+)</\1>%', $text); 

Смотрите на PHP документацию для большего количества примеров:

http://php.net/manual/en/function.preg-match-all.php#refsect1-function.preg-match-all-examples (Пример # 2 имеет подобную ситуацию, как ваша)

1

Я знаю, уже есть регулярное выражение решение но я действительно думаю, что вы должны просто использовать файл .json или даже лучше отдельный файл php, где вы можете разместить настройки. Если вы уже работаете в PHP, я не понимаю, почему вам нужно будет усложнять ситуацию, анализируя пользовательский файл открытого текста.

1

Измените текстовый файл на XML-файл, так как в текстовом файле уже есть теги XML. Просто добавьте строку заголовка XML в верхней части файла, а затем сохраните ее как .xml.

Используйте simplexml_file_load(), чтобы создать объект SimpleXML и использовать теги в качестве свойств.

$xml = simplexml_file_load('config.xml'); 

$licence = $xml->Licence; 
$company_name = $xml->Name 
Смежные вопросы