PHP到ASP.NET的转换

时间:2011-06-07 17:27:15

标签: php asp.net

有谁知道如何将以下PHP代码转换为ASP.NET?

<?php
$myFile = "includes/status.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, 1);

$status= $theData;

if ( $status == 0) {
    include('includes/bol_down.php');
} 
    elseif ($status == 1){
    include('includes/login_form_up.php');
}

fclose($fh);
?>

3 个答案:

答案 0 :(得分:1)

可能很大程度上取决于所包含的内容。 ASP.NET不会以这种方式“包含”其他代码。

如果包含的代码只是PHP代码,那么ASP.NET中就没有必要这样做。已编译的程序集包含已编译的所有可用代码。

如果包含的代码是实际的页面输出,那么它就是您完成此操作的不同模型。最接近的类比是conditionally display a user control。像这样:

if (status == 0)
{
  var myControl = (MyControlType)LoadControl("~/MyControl.ascx");
  myPlaceHolder.Controls.Add(myControl);
}
else if (status == 1)
{
  var myOtherControl = (MyOtherControlType)LoadControl("~/MyOtherControl.ascx");
  myPlaceHolder.Controls.Add(myOtherControl);
}

在这种情况下,myPlaceHolder是页面上的现有控件,仅作为一个好的占位符存在,以便动态添加控件。这是因为ASP.NET中的页面生命周期与PHP中的不同。在PHP中,脚本是在线添加的,而在ASP.NET中,用户控件被插入到现有的标记结构中。

答案 1 :(得分:1)

int status = theData;

if(status == 0)
{
  Response.WriteFile("includes/bol_down.html");  
}
else if(status == 1)
{
  Response.WriteFile("includes/login_form_up.html");
}

我假设theData的类型为int(整数)。

要注意的事情。 ASP.NET在部署之前进行预编译,这就是使用include无法动态添加的原因。相反,您必须将文件直接写入输出流(WriteFile())。此外,您包含的文件不能包含ASP.NET服务器端代码。如果是,代码将不会被执行,它将简单地显示给用户。可能有替代你想要实现的目标。您可以动态阅读更多内容,包括文件here

答案 2 :(得分:0)

<?php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){ 

    include_once "ez_sql_core.php";
    include_once "ez_sql_mysql.php";
    $db = new ezSQL_mysql('db_user','db_password','db_name','db_host'); 

    $song = $db->get_row("SELECT * FROM songs ORDER BY RAND() LIMIT 1");

    $artist = $song->artist;
    $songname = $song->title;
    $url = $song->url;
    $separator = '|';
    echo $url.$separator.$artist.$separator.$songname;
} 

?>