在使用PHP创建的另一个PHP页面中包含PHP代码?

时间:2014-03-10 14:19:17

标签: php html

我知道标题有点令人困惑,但我找不到更好的方法来标题这个问题!

我会尽力在这里解释一下:

我正在使用另一个php文件创建一个扩展名为.php的页面。工作良好。 这个php文件中只有一些HTML代码。所以它是带有.HTML代码的.PHP文件。这也很好。

现在,我正在尝试将一些PHP代码放在这个创建的PHP文件的顶部,这样我就可以连接到mysql数据库了。

但是当我将PHP代码放在页面顶部连接到数据库时,以及创建页面时,它只会创建一个空白页面!当我在浏览器中查看页面源时,页面中没有单个HTML代码!

我希望到目前为止我还没有让你们困惑......

此代码会创建一个空白页:

$i=1;
while($file = fopen("untitled$i.php", "r")) { fclose($file); $i++; }
if($file = fopen("untitled$i.php", "w")) {
$html ='<?php 
include "config/connect.php"; 
$dynamicList = "";
$sql = "SELECT DISTINCT filename FROM pages";
$query = mysqli_query($db_conx, $sql);
$productCount = mysqli_num_rows($query); // count the output amount
if ($productCount > 0) {
    while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
             $category = $row["category"];
             $dynamicList .= "<li><a href="#">' . $filename . '</a></li>";
    }
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

    <head profile="http://gmpg.org/xfn/11">

**rest of the HTML code goes here.....................**

此代码按原样创建页面并且工作正常:

$i=1;
while($file = fopen("untitled$i.php", "r")) { fclose($file); $i++; }
if($file = fopen("untitled$i.php", "w")) {
$html ='
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

    <head profile="http://gmpg.org/xfn/11">

**rest of the HTML code goes here.....................**

我做错了什么?

3 个答案:

答案 0 :(得分:1)

你不能将php标签和变量传递给字符串。您没有看到任何内容的原因很可能是因为浏览器不了解您之前传递的任何内容

你想做的是整体上的坏习惯。你确定除了创建n个php文件之外没有其他办法吗?

- 好吧,因为我看到你的评论我试着解释PHP是如何工作的

假设您有www.website.com,这里有基本主页和菜单

菜单包含以下内容:汽车,手机,平板电脑

使用你的设计你只需要创建www.website.com/cars.php,mobiles.php,plainss.php - 这是错的,你把这种编程语言所提供的一切都搞砸了。

您应该使用网址变量&gt;

而不是这个

www.website.com/index.php?page=cars www.website.com/index.php?page=mobiles ...

现在在您的PHP代码中,您只检查是否设置了PAGE,然后获取其值

 if(isset($_GET['page'])){

      if($_GET['page'] == 'cars'){

          // YOUR CARS PAGE
          mysql_query("SELECT * FROM CARS WHERE COLOR = 'Blue'");

      }
      else if($_GET['page'] == 'mobiles'){


          // YOUR MOBILE PAGE
          mysql_query("SELECT * FROM MOBILES WHERE OS = 'Android'");

      }

 }
 else{

     // YOUR MAIN PAGE

 }

这就是你处理PHP的方式。

我强烈建议你在继续之前阅读http://www.w3schools.com/PhP/

答案 1 :(得分:0)

    $i=1;
    while($file = fopen("untitled$i.php", "r")) { fclose($file); $i++; }
        if($file = fopen("untitled$i.php", "w")) {
            include "config/connect.php"; 
            $dynamicList = "";
            $sql = "SELECT DISTINCT filename FROM pages";
            $query = mysqli_query($db_conx, $sql);
            $productCount = mysqli_num_rows($query); // count the output amount
            if ($productCount > 0) {
                while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
                         $category = $row["category"];
                         $dynamicList .= "<li><a href="#">' . $filename . '</a></li>";
                }
            }
        }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

        <head profile="http://gmpg.org/xfn/11">
    <?php echo $dynamicList; ?>

答案 2 :(得分:0)

我无法理解你的目标是什么,但让我告诉你我的想法......

PHP代码在服务器上运行,因此当您在页面上编写它时,肯定不会做任何事情(只是在HTML页面中“粘贴”),但浏览器将完全忽略此PHP代码,因此您将永远不会在页面源中看到它,因为它被<?php ?>标记所包围。

您的解决方案(我从未尝试过)可能是:在原始PHP页面中加载模板PHP文件,使用新代码编辑它,然后将其发送到客户端或从服务器请求它,作为您的选择。

希望它有所帮助!