扩展名为“cmt”的PHP文件(?)

时间:2011-12-10 15:16:50

标签: php

这听起来有点傻。 我必须使用新界面更新网站,虽然我收到旧代码但我丢失了。 (据我所知,我收到了完整的网站,包括phpPgAdmin)

大多数文件都是.cmt,但我很确定它是PHP,例如index.cmt是

<?
include_once('redirected.php');
exit();
function get_lang_from_ip() {
    $client_ip = $_SERVER['REMOTE_ADDR'];
    $client_hostname = gethostbyaddr($client_ip);

    if ($client_ip != $client_hostname) {
        $dom_arr = split('\.',$client_hostname);
        $lang_id = ($dom_arr[sizeof($dom_arr)-1] == 'hu') ? 'hu' : 'en';
    } else {
        $lang_id = 'hu';
    }
    return $lang_id;
}

function set_target() {
    $valid_lang_arr = array('hu', 'en');
    if (isset($_GET['lang_id']) && in_array($_GET['lang_id'], $valid_lang_arr)) {
        $lang_id = $_GET['lang_id'];
    } elseif (isset($_COOKIE['lang_id']) && in_array($_COOKIE['lang_id'], $valid_lang_arr)) {
        $lang_id = $_COOKIE['lang_id'];
    } else {
        $lang_id = 'hu'; //get_lang_from_ip();
    }
    setcookie('lang_id', $lang_id, time()+3600*24*365, '/');
    return $lang_id;
}

header('Connection: close');
header('Location: /'.set_target().'/');
?>

但.php文件不是以<?短开标记开头,而是以<?php开头。最重要的是,.cmt文件没有被解析,如果我导航到index.cmt我在浏览器中看到代码,因此我甚至无法将旧布局重新组合在一起。

感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

您可以制作.htaccess文件,并包含以下内容:

AddType application/x-httpd-php .cmt

这应该允许PHP在.cmt文件扩展名上执行。

请注意,此修补程序只能在Apache Web服务器或支持.htaccess的其他服务器上使用。


尽管如果可能,我建议您将所有.cmt个文件扩展名更改为相应的对应部分.php

答案 1 :(得分:3)

虽然@Josh Foskett有一个有效的答案,但我认为实际的解决方案是浏览您的文件并将.cmt扩展名重命名为.php以获得可扩展性并避免混淆。

考虑通过将旧版扩展升级到当前扩展标准来“逐步淘汰”旧版扩展。将它作为一个项目,而不是一个快速解决方案,我认为你的代码库会更快乐。

答案 2 :(得分:1)

您需要将服务器配置为将.cmt文件解析为PHP。

此外,<?<?php都是PHP的有效开始标记,但在PHP设置中可能会关闭短版本(通常在文件系统的某处定义php.ini)。

答案 3 :(得分:1)

在php.ini中启用short_open_tag

这将确保php实际执行,如果它是包含来自另一个文件。它仍然不会直接执行.cmt个文件,但是如果你有主.php个条目文件,那就是你需要的行为。