php - 使用 fwrite() 写入文件时如何将一页中的变量包含在另一页中?

标签 php mysql html forms fwrite

代码如下:

<?php
// For use in creating individual page
$tpl_file = "submission.php";
$tpl_path = "templates/";
$submissions_path = "submissions/";



// For use in querying submitter name

$username = $_GET['username'];
session_start();
$_SESSION['username'] = $username; 

//Database Information

$dbhost = "";
$dbname = "";
$dbuser = "";
$dbpass = "";

//Connect to database

mysql_connect ( $dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
mysql_select_db($dbname) or die(mysql_error());


$name = $_POST['name'];
$filename = $_POST['filename'];   
$submitter = $username;
list($width, $height) = getimagesize("$filename");
$type = exif_imagetype($_POST['filename']);

$checkuser = mysql_query("SELECT filename FROM images WHERE filename='$filename'");

$filename_exist = mysql_num_rows($checkuser);

if($filename_exist > 0){
    echo "I'm sorry but this image has already been submitted. Please feel free to try another.";
    unset($filename);
    include 'upload.php';
    exit();
}


if (exif_imagetype($_POST['filename']) == IMAGETYPE_GIF) {
    echo "Sorry, but we can't accept GIFs. Please feel free to try uploading another.";
    unset($filename);
    include 'upload.php';
    exit();
}



$query = "INSERT INTO images (name, filename, submitter, width, height, type)
VALUES('$name', '$filename', '$submitter', '$width', '$height', $type)";
mysql_query($query) or die(mysql_error());
mysql_close();

echo "Thanks for your submission!<br/> Upload another <a href='/~lyons/upload.php'>here</a>!";

$tpl = file_get_contents($tpl_path.$tpl_file);
$php_file_name = $name.".php";

$fh = fopen($submissions_path.$php_file_name, "w");
fwrite($fh, $tpl);
fclose($fp); 
?>

当用户提交图片时,它应该自动基于模板创建页面。这是模板的代码:

<html>
<title><?php echo $name; ?></title>
<head>
</head>

<body>
<h1><?php echo $name ?></h1>
Posted by: <?php echo $username ?>
<br/>
<img src="<?php echo $filename ?>"/>

</body>
</html>

正如您可能已经猜到的那样,我希望它放入在提交图片的第一个脚本中派生的名称、用户名和文件名值。然而,它们似乎并没有延续下去。页面已创建,但在应该回显变量值的地方却是空白的。 如何包含我想要在创建的页面中使用的变量的值?

预先感谢任何可以帮助我的人。

最佳答案

我建议使用 %name%%username% 等字符串来标记变量的占位符。

然后,在写入文件之前,尝试如下操作:

$tpl = preg_replace("(%([a-z_][a-z0-9_]*)%)ie",'$$1',$tpl);

这将找到例如 %filename% 并将其替换为变量 $filename 的内容。

关于php - 使用 fwrite() 写入文件时如何将一页中的变量包含在另一页中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8032004/

相关文章:

javascript - jquery 将值发送到 PHP 网页

MySQL不同于

PHP & MySQL 用户名提交问题

time - 时间标签中的今天时间

文本框下方的 HTML 边框

php - PHP 中使用 UTF8 的 hmtlspecialchars 时不显示变音符号

php - 一个 CSS 类与另一个 CSS 类重叠(附图)

javascript - 单击链接后显示 div,再次单击同一链接时隐藏

php - Drupal View : Generate xml file

来自两个连接查询的 MySQL "Group By"