PHP文件在浏览器中打开而不是运行[重复]

Posted

技术标签:

【中文标题】PHP文件在浏览器中打开而不是运行[重复]【英文标题】:PHP file opens in browser instead of running [duplicate] 【发布时间】:2015-03-09 05:15:37 【问题描述】:

我在为学校项目构建的网站中需要一点 php。我需要它来上传 .swf 文件。但是当我按下“上传”按钮时,它会在浏览器中打开 php 文件而不是运行它,或者如果有错误则显示错误。

这是我的 html 代码:

<!DOCTYPE html>
<html>
<head>
<title>New Smallcut</title>
</head>
<body>
<font face="verdana" size="2">
<div style="text-align:center">
This is a webpage<br>
But no matter what, I am King
<p><a href=http://www.kiaye.org/>KIAYEorg</a></p>
    <br>
    <img src=KingSn0w.png   alt=“King Sn0wCh1ld’s logo”>


    <form action="upload.php" method="post" enctype="multipart/form-data">
        Select game to upload:
        <input type="file" name="fileToUpload" id="fileToUpload">
        <input type="submit" value="Upload Image" name="submit">
    </form>
</div>
</font>

它应该在图像和表单上方放置一些文本,在其他普通网页上。

接下来是我从 W3Schools 获得的 PHP。

<?php
$target_dir = "uploads";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) 
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) 
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
 else 
    echo "File is not an image.";
    $uploadOk = 0;



// Check if file already exists
if (file_exists($target_file)) 
echo "Sorry, file already exists.";
$uploadOk = 0;


// Allow certain file formats
if($imageFileType != "swf") 
echo "Sorry, only .swf files are allowed.";
$uploadOk = 0;

?>

我完全不知道为什么它不起作用,我在 5 年不使用它后才重新回到 HTML 中(我上次使用它时是 9 岁),我真的需要一点 PHP(我确实需要不明白,记录),工作。稍后我将需要更多的 PHP 来进行站点范围的搜索,我假设搜索结果和内容,如果我能让它工作,那将是令人欣慰的。

提前致谢!

【问题讨论】:

如果你不理解代码,是什么让你认为你需要让它工作? 无论如何,这是一个服务器配置问题。这里不完全是 OT。 嗯,你安装了 PHP 和服务器吗?如果不是,那是你的问题。对于新手来说,最简单的方法是安装一个服务器包。 XAMPP 在我的经验中一直运行良好,但有others out there。 【参考方案1】:

你是通过file://访问文件的,不管你有没有安装webserver,如果你在浏览器中打开了php文件本身,web服务器什么都没有做它;您正在直接打开文件,无需网络服务器的干预。

您的网络服务器配置为运行本地网站,我假设可以通过您的本地 IP 地址127.0.0.1 访问。

在浏览器中输入它并检查它是否有效。

【讨论】:

【参考方案2】:

尝试将此添加到您的 PHP 文件所在的 .htaccess 文件中

AddHandler application/x-httpd-php .php

如果它不起作用,则意味着您的 apache 服务器上没有安装 PHP。请联系您的托管服务提供商。

编辑:

您需要安装带有 PHP 模块的 apache 服务器才能运行 PHP 文件。

你可以安装一个像 XAMPP 这样的包,然后你就可以运行 php 文件了。你可以在这里阅读更多:https://www.apachefriends.org/index.html

【讨论】:

我在我的电脑上运行它,通过 file:// 你不能像这样运行 php 文件。要执行 PHP 文件,您需要安装和配置 PHP 的 apache 服务器。 JustMe,在我看来,您确实需要阅读有关在网络上运行 PHP(或任何其他语言)的知识。如果你想“运行”你的 PHP,你的浏览器只提供静态文件,例如。在浏览器中获取脚本的输出,您必须在两者之间放置一个解释器,这可以通过 Web 服务器(Apache、nginx 等)来完成。 另外,我该如何命名 .htaccess 文件?重要吗? 要使用.htaccess文件,你需要通过apache服务器运行网站,你可以在网上阅读如何安装和配置一个。【参考方案3】:

您需要一个像 Nginx、Apache 或 PHP 服务器本身这样的网络服务器,如果您不这样做,那么当您尝试通过浏览器 (file://) 访问文件时,浏览器将假定它是纯文本。

推荐使用 XAMPP 和 WAMP 堆栈,并且非常易于安装,它们还附带 mysql(以及用于 XAMPP 的 Perl)

当然,如果您对所有好东西都不感兴趣,您可以只安装独立的 Web 服务器,here 是一些安装 Nginx 和设置 PHP 的说明,here 是 Apache 的说明。

祝你好运!

【讨论】:

以上是关于PHP文件在浏览器中打开而不是运行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

php函数检测该网站是不是在手机或计算机浏览器中打开[重复]

使用 php for ios 在外部浏览器而不是应用内移动浏览器中打开 url

Aptana:默认情况下如何使用 Web 浏览器打开 php 文件

Android 使用 php 在浏览器中打开 pdf 文件

Laravel 5.5 项目下载文件而不是在浏览器中打开它们 PHP 7.1 MAC

如何使用 XAMPP 的 apache 运行 php?