1

我有一个页面 test.php,其中有一个名称列表:

name1='992345'
name2='332345'
name3='558645'
name4='434544'

在另一个页面test1.php?id=name2中,结果应该是:

332345

我试过这个 PHP 代码:

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

如果代码是这样使用的

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

结果很好

558645

但是如果结果将是蜜蜂,我希望能够使用这样的 GET 方法更改'/name3=\'from的名称。;preg_match_all('/name3=\'([^\']+)\'/',$Text,$Match)test1.php?id=name4434544

4

2 回答 2

1

'(单引号)中,变量被视为文本而不是变量。

改变这个

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

preg_match_all("/$id=\'([^\']+)\'/",$Text,$Match); 
于 2013-04-30T07:15:48.337 回答
0

试试这个代码:

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

这将起作用。

编辑:

<?php 
$Text=file_get_contents("test.php");
if(isset($_GET["id"])){
   $id = $_GET["id"];
   $regex = "/".$id."=\'([^\']+)\'/";
   preg_match_all($regex,$Text,$Match); 
   $fid=$Match[1][0]; 
   echo $fid; 
} else {
   echo "There is no name selected.";
}

 ?>
于 2013-04-30T07:16:52.547 回答