извлекать информацию с другой веб-страницы

У меня есть этот test.php, где у меня есть эта информация:

callername1 : 'Fernando Verdasco1' callername2 : 'Fernando Verdasco2' callername3 : 'Fernando Verdasco3' callername4 : 'Fernando Verdasco4' callername5 : 'Fernando Verdasco5' 

эта страница автоматически изменяет это имя каждые 10 минут

На этой другой странице test1.php

Мне нужен php-код, который принимает только имя вызывающего имени3 и echo'it

 Fernando Verdasco3 

Я пробовал это так: test1.php? Id = имя_пользователя3

 <?php $Text=file_get_contents("test.php"); if(isset($_GET["id"])){ $id = $_GET["id"]; parse_str($Text,$data); echo $data[$id]; } else { echo ""; } ?> 

но результата нет.

Есть ли другой вариант?

Если у меня есть "=" instade of ":"

 callername1 = 'Fernando Verdasco1' callername2 = 'Fernando Verdasco2' callername3 = 'Fernando Verdasco3' callername4 = 'Fernando Verdasco4' callername5 = 'Fernando Verdasco5' 

И я использую этот код php, который он работает

 <?php $Text=file_get_contents("test.php") ;preg_match_all('/callername3=\'([^\']+)\'/',$Text,$Match); $fid=$Match[1][0]; echo $fid; 

?>

Мне нужно это для работы с ":"

Помогите?

Вы должны хранить данные в файле с расширением .php , поскольку он не является исполняемым PHP. Похоже, вы собираетесь использовать синтаксис JSON.

Поскольку вам нужно, чтобы он работал с «:», я полагаю, по какой-то причине вы не можете изменить формат. Ваш пример с '=' работает из-за регулярного выражения:

 preg_match_all('/callername3=\'([^\']+)\'/',$Text,$Match); 

Это говорит, сопоставляйте текст, например, callername3= а за ним следует один или несколько символов, которые не являются ' последними ' . Все между ними хранится в $ Match [1] [0] (если в скобках было больше частей, они сохраняются в $ Match [2] [0] и т. Д.).

Ваш пример не работает, поскольку он не учитывает пробелы до и после знака = . Но мы можем исправить это и изменить его для работы : вот так:

 preg_match('/callername3\s*:\s*\'([^\']+)\'/',$Text,$Match); echo $Match[1] ."\n"; 

Это отображает:

 Fernando Verdasco3 

И что это регулярное выражение – это текст соответствия, который запускает callername3 за которым следует любое количество пробелов (это \s* ), за которым следует a : за которым следует любое количество пробелов, за которым следует имя в кавычках (которое хранится в $ Match [ 1], это область регулярного выражения, заключенного в круглые скобки).

Я также использовал только preg_match потому что похоже, что вам нужно только соответствовать одному примеру.

Существует довольно простой подход к тиху:

 $fData = file_get_contents("test.php"); $lines = explode("\n", $fData); foreach($lines as $line) { $t = explode(":", $line); echo trim($t[1]); // This will give you the name }