-1

i have this list on name.txt file :

"name1":"Robert"
"name2":"George"
"name3":"Flophin"
"name4":"Fred"

in a web page i need a php code that takes only the name of the person by the name 1 2 3 4 id.

I've use this in test.php?id=name2

$Text=file_get_contents("./name.txt"); 
if(isset($_GET["id"])){ 
    $id = $_GET["id"]; 
    $regex = "/".$id."=\'([^\']+)\'/"; 
    preg_match_all($regex,$Text,$Match); 
    $fid=$Match[1][0]; 
    echo $fid; 
} else { 
    echo ""; 
} 

The result should be George , how do i change this to work??

Mabe is another way to do this more simply?

4

3 回答 3

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

$id = $_GET["id"]; 

$result=explode(':',$file[$id-1]);

echo $result[1];

编辑: $result[1] 如果您只想命名。

于 2013-07-04T14:39:52.587 回答
0

这是您的问题的丑陋解决方案,您可以循环使用。

这里对explode 函数的引用。

<?php

$text = '"name1":"Robert"
"name2":"George"
"name3":"Flophin"
"name4":"Fred"';

$x = explode("\n", $text);
$x = explode(':', $x[1]);

echo $x[1];
于 2013-07-04T14:39:07.120 回答
0

将文本文件加载到数组中;以PHP中的文本文件和数组为例。

加载数组后,您可以直接引用数组值,例如 $fid = $myArray['name' 。$id]。请参考PHP 如何从数组中获取值,如果键在变量中作为示例。

于 2013-07-04T14:47:16.797 回答