我有这个file1.php:如何在PHP文件之间传递文件名作为变量?
<?php
// Start the session
session_start();
?>
<?php
$path_to_check = '';
$needle = $_POST['query'];
foreach(glob($path_to_check . '*.xml') as $filename)
{
foreach(file($filename) as $fli=>$fl)
{
if(strpos($fl, $needle)!==false)
{
echo $filename . ' on line ' . ($fli+1) . ': ' . $fl;
}
}
}
$_SESSION["hit"] = $fli;
header('Location: file2.php');
?>
它从一个形式的搜索内容和搜寻SEARCH_TERM_EXAMPLES它在当前目录中的所有XML的文件中。这个目录中的XML文件只有两个; 1.xml和2.xml。
说我搜索在2.XML一个字的现象发生,那么我想保存“2.XML”作为变量$ _SESSION [“打”]和file2.php使用它:
<?php
// Start the session
session_start();
?>
<?php
echo $_SESSION["hit"];
// Load XML file
$xml = new DOMDocument;
$xml->load($_SESSION["hit"]);
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('stylesheet.xsl');
// Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
不幸的是,
echo $_SESSION["hit"];
回报仅仅是 “2”,而不是 “2.XML”,所以后来
$xml->load($_SESSION["hit"]);
不会加载XML文件2.xml(因为变量刚刚返回2)。
我在这里做错了什么?
提前许多感谢:-)
/保罗
'$ fli'是一个数字线而不是文件名。 –
我将它更改为$ filename并且echo $ _SESSION [“hit”];现在正确返回'2.xml'。但它不会在$ xml-> load($ _ SESSION [“hit”])中传递;也许这是错误的语法来传递变量? –