是否有一个函数可以读取解析后的PHP函数?

时间:2010-04-21 05:43:42

标签: php fopen file-get-contents

我有一个php文件来回显来自MySQL数据库的哈希值。这是我正在使用的远程程序所必需的,但同时我需要打开其他php脚本并检查指定的字符串POST解析。如果它检查字符串预解析,它将只获取MySQL查询而不是要查找的字符串。

我不确定是否有任何功能可以做到这一点。 fopen()在解析之前是否读取了文件?或file_get_contents()?

如果是这样,是否有一个函数在php和mysql代码运行后才会读取文件?

带有散列查询和回显的文件与读取它的php文件位于同一目录中,如果这有所不同。

也许fopen在解析后读取它,并且我做错了什么,但起初我将哈希直接存储在文件中,并且它工作正常。在我改变它以回显MySQL表的内容之后,它出了问题。

MySQL查询脚本:

$query="SELECT * FROM list";
$result=mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
 echo $row['hash']."<br>";
 }

我之前使用的是从这个脚本中获取哈希值,当时它只是一个哈希列表:

            $myFile = "hashes.php";
            $fh = fopen($myFile, 'r');
            $theData = fread($fh, filesize($myFile));
            fclose($fh);
            $mystring = $theData;
            $findme   = $hash;
            $pos = strpos($mystring, $findme);

1 个答案:

答案 0 :(得分:1)

最简单的方法是修改你的第一个php文件,它按照这些方式回应所有内容:

  • echo的每个实例更改为例如$data[] =
  • 在底部,执行foreach($data as $d) echo $d(这将产生与您现在相同的结果)
  • 你现在仍然拥有你的$data数组,你可以通过它来做任何你想做的事情。

要提供工作代码示例,如果您可以发布文件的当前代码,那就太棒了。

修改

如果你改变你的脚本:

$query="SELECT * FROM list";
$result=mysql_query($query);
while($row=mysql_fetch_array($result, MYSQL_ASSOC)){
 $data[] = $row['hash']."<br />";
 }
foreach($data as $d) {
     echo $d;
}

...你将拥有包含密钥中每个哈希的数组$ data。然后你可以这样循环遍历这个数组:

foreach($data as $d) {
  //do something
}