我有一个简单的PHP代码:
//index.php
$file = fil1.txt;
//open file using fopen...
echo $file;
如果我需要在另一个php文件(e.x. results.php)的新标签页中打印我的文件数据,我该怎么办?
这是我的代码示例:
function elementStart($parser, $name, $attrs) {
global $depth;
echo str_repeat(" ", $depth * 0);
//echo "<b>$name</b><br>";
$depth++;
foreach ($attrs as $attr => $value) {
echo str_repeat(" ", $depth * 0);
echo $value.'<br>';
}
}
function elementStr($parser, $str) {
if (strlen(trim($str)) > 0) {
global $depth;
echo str_repeat(" ", $depth * 0);
echo $str.'<br>';
}
}
function elementEnd($parser, $name) {
global $depth;
$depth--;
}
require_once 'connect.php';
if(isset($_POST['submit1']))
{
$db = new database('localhost', 'root', '', 'database1');
$val = mysql_escape_string($_POST['xml1']);
$db->query("SELECT * FROM xmltable1 WHERE xmlvalue LIKE '%$val%' LIMIT 1");
if($_POST['submit1'])
{
if($dbase->numRows() == 0){
echo 'No rows';
}
else{
foreach($db->rows() as $name){
//echo $name['xmlvalue'];
define('FOLDER_PATH', 'C:user/folder1/xmld/');
$full_path = FOLDER_PATH.$name['xmldata'];
//echo $full_path;
$depth = 0;
$file = $full_path;
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "elementStart", "elementEnd");
xml_set_character_data_handler($xml_parser, "elementStr");
while ($data = fgets($fp)) {
thexml_parser_free($thexml_parser);
}
}
}
$dbase->disconnect();
}
在我的功能中有回声。当然,我在当前页面中得到回音,但我需要在新标签中回显。
答案 0 :(得分:1)
将数据传递到另一个窗口(或选项卡)中的另一个PHP文件的唯一方法是使用会话。
在两个PHP文件的顶部,启动会话:
session_start();
在 index.php 中将文件数据分配给会话变量:
$_SESSION['file_data'] = $file_contents;
在 results.php 中,打印出数据:
echo $_SESSION['file_data'];
答案 1 :(得分:1)
打开一个新的选项卡不是PHP应该做的,你可以尝试用javascripntk实现这样的:
echo <<<EOF
<script>
var win = window.open('about:blank');
var doc = win.document;
doc.write('{$yourdata}');
</script>
EOF;