2013-06-02 2 views
1

Я пытаюсь прочитать текст после определенного символа, а затем извлечь данные. Я могу это сделать, но хочу иметь возможность выделять данные с помощью «#», чтобы он был разделен по отдельности. Я могу справиться с этим, но проблема в том, что на некоторых частях есть место вместо хэштега.Чтение текста после определенного символа с помощью PHP

Я пробовал использовать $info = explode(' = ', rtrim($file, '#'));, но это не работает. Я также пробовал некоторые другие решения, которые тоже не работали.

Это мой код:

$file = file_get_contents('LauncherInfo.txt'); 
$info = explode(' = ', $file); 

echo $info[0].'#'.$info[1].'#'.$info[2].'#'.$info[3].'#'.$info[4]; 

Это выход я с этим кодом.

IP#127.0.0.1 EXE#Client.exe PORT#8080 TITLE#Launcher 

Но я хочу, чтобы это было так:

IP#127.0.0.1#EXE#Client.exe#PORT#8080#TITLE#Launcher 

Кроме того, это мой TXT файл:

IP = 127.0.0.1 
EXE = Client.exe 
PORT = 8080 
TITLE = Launcher 

Спасибо за чтение, я ценю помощь.

ответ

1
$file=file('LauncherInfo.txt'); 

foreach ($file as $line) { 

$line=str_replace(' = ','#',$line); 
$line=preg_replace('%\r\n%','#',$line); 

echo $line; 

} 
+0

О, я вижу, что вы там делали. Это довольно умно и именно то, что я ищу. Спасибо. –

0

Я думаю, вы можете просто использовать str_replace функцию

$str = 'IP#127.0.0.1 EXE#Client.exe PORT#8080 TITLE#Launcher'; 

echo str_replace(' ', '#', $str); 

Этот выход

IP#127.0.0.1#EXE#Client.exe#PORT#8080#TITLE#Launcher 

Live sample

+0

Да, это возможно, но я хочу, чтобы читать его из текстового файла. Если бы я хотел сделать это нормально, я думаю, что я мог бы просто откликнуться на результат. –

+0

@farbodD, пожалуйста, проверьте мой живой образец, это на самом деле то же самое, что и зарядка из файла – Fabio

+0

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

1

пользователь подрезать() функцию, чтобы удалить пробелы из правого и левого,

echo trim($info[0]).'#'.trim($info[1]).'#'.trim($info[2]).'#'.trim($info[3]).'#'.trim($info[4]); 
+0

Это не работает. –

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