У меня есть этот 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 }