动态创建php文件和表

Posted

技术标签:

【中文标题】动态创建php文件和表【英文标题】:dynamically creating php files and tables 【发布时间】:2013-05-07 07:15:39 【问题描述】:

我是 php 新手,在编写了几个 CMS 之后,我想尝试一些更复杂的东西。

我想做的是创建一个脚本,借此我可以创建一个包含函数、类和表单等的整个用户区域。类似于用户的个人管理面板,但在他们自己的目录中。目的是然后在网页中创建自己的网页。我认为这是一项常见的任务,因为我猜这是所有博客、投资组合网站、facebook、youtube 所做的。

我一直在尝试使用 mkdir fopen fwrite 和类似的命令,但我不知道如何使用这些 - 没有大量代码 - 来创建功能齐全的用户区域,如管理面板。

写完这篇文章后,我发现在扩展它时遇到了问题。如果用户总是在创建文件,那么这最终会占用大量的服务器空间。在 Codeigniter 之类的框架中通过 MVC 是否有更好的方法来做到这一点?

或者最好的方法是使用php copy()

【问题讨论】:

wordpress 会是你更好的选择吗?? @Subash 也许是的,但我想自己创建它以了解更多 PHP 你应该玩HMVC Bonfire cibonfire.com 也可以看看 CI Bonfire module Builder 的功能 @dianuj 谢谢,这看起来不错 你可以试试 Codeigniter 框架,它轻巧但非常强大codeigniter.com 【参考方案1】:

所以你想在没有大量代码的情况下制作 facebook。祝你好运:)

但是要创建一个单独的用户区域,您不需要为这些用户实际创建文件。您有一个存储每个用户数据的数据库,并且您有一个为正确的用户选择正确数据的 php 文件。

下面的例子是一个非常简单的概念证明,不应该直接使用。

你有一个表 users

id | Name
1  | Elisa
2  | Hugo

还有一个表格内容

id | UserId | MyBlogEntry
1  | 1      | Hello, this is my blog
2  | 1      | Hello, this is my 2nd blog
3  | 2      | I dont like blogging

现在您有一个名为 usercontent.php 的页面,它接受用户名作为变量。你把它称为usercontent.php?user=Eliseusercontent.php?user=Hugo

内容: 请记住,为简单起见,我省略了所有验证检查。您需要确保存在有效用户且没有 SQL 注入

<?
$user = isset($_GET['user']) ? $_GET['user'] : ''

if (empty($user)) 
  echo 'I dont know this user';
  exit;


echo $user.'\'s Blog<hr>';

$query = "SELECT * FROM content WHERE UserId=(SELECT Id FROM users WHERE name='".$user."')";

//execute mysqli query

while($row = $result->fetch_array(MYSQLI_ASSOC))

  echo '<p>' . $row['MyBlogEntry'] . '<p>';

?>

Elisa 的输出将是这样的

Elisa's blog
---------------------
Hello, this is my blog

Hello, this is my 2nd blog

为了雨果

Hugo's blog
---------------------
I dont like blogging

【讨论】:

这很有意义,我已经在使用这样的方法来仅向用户显示他们自己的记录。但是您不会为每个用户的内容创建一个表吗?一张表中的所有内容? 您将拥有一个数据库和多个表。您可以有一张用户表,一张用于博客,一张用于设置,一张用于投资组合,一张用于 cmets,一张用于...等

以上是关于动态创建php文件和表的主要内容,如果未能解决你的问题,请参考以下文章

PHP动态文件夹创建[重复]

php创建动态html表

PHP 使用PHP创建外部动态生成的CSS文件。

PHP 动态创建文件并立即下载

使用PHP创建一个外部动态生成的CSS文件。

ZipStream 在 PHP 中动态创建的 zip 文件不会在 OSX 中打开