为什么这个PHP不执行?

时间:2010-05-07 22:37:52

标签: php

我完全复制了此网站的代码:http://davidwalsh.name/web-service-php-mysql-xml-json,如下所示,

/* require the user as the parameter */
if(isset($_GET['user']) && intval($_GET['user'])) {

/* soak in the passed variable or set our own */
$number_of_posts = isset($_GET['num']) ? intval($_GET['num']) : 10; //10 is the default
$format = strtolower($_GET['format']) == 'json' ? 'json' : 'xml'; //xml is the default
$user_id = intval($_GET['user']); //no default

/* connect to the db */
$link = mysql_connect('localhost','username','password') or die('Cannot connect to the DB');
mysql_select_db('db_name',$link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "SELECT post_title, guid FROM wp_posts WHERE post_author = $user_id AND post_status = 'publish' ORDER BY ID DESC LIMIT $number_of_posts";
$result = mysql_query($query,$link) or die('Errant query:  '.$query);

/* create one master array of the records */
$posts = array();
if(mysql_num_rows($result)) {
    while($post = mysql_fetch_assoc($result)) {
        $posts[] = array('post'=>$post);
    }
}

/* output in necessary format */
if($format == 'json') {
    header('Content-type: application/json');
    echo json_encode(array('posts'=>$posts));
}
else {
    header('Content-type: text/xml');
    echo '<posts>';
    foreach($posts as $index => $post) {
        if(is_array($post)) {
            foreach($post as $key => $value) {
                echo '<',$key,'>';
                if(is_array($value)) {
                    foreach($value as $tag => $val) {
                        echo '<',$tag,'>',htmlentities($val),'</',$tag,'>';
                    }
                }
                echo '</',$key,'>';
            }
        }
    }
    echo '</posts>';
}

/* disconnect from the db */
@mysql_close($link);
}

并且php没有执行,它只显示为纯文本。什么是有效的?主机支持PHP,我用它来运行Wordpress博客和其他东西。

4 个答案:

答案 0 :(得分:3)

有几个原因可能会显示为文本而非执行。

首先,它缺少<?php?>标记。如果没有这些,PHP会认为您只想将此文件中的所有内容发送到浏览器。

如果您正在使用Apache,则需要告诉Apache执行这些文件(通常您会告诉Apache使用PHP解释器执行以.php结尾的所有文件)。

您的主机可能要求您将所有可执行文件放在某个目录中。请务必按照他们的说明设置网站。

答案 1 :(得分:2)

尝试将所有代码包装在&lt;?php和?&gt;

答案 2 :(得分:1)

没有<?php标记。它被命名为.php文件吗?

答案 3 :(得分:1)

把它放在<?php ?> ??