2011-02-23 54 views
0

我正在转换一个旧的PHP项目到ASP.Net(VB),并想知道如果有人可以指向我在正确的方向,以转换这最后一段代码。PHP到ASP.Net转换

有3个函数是从这个内部调用的,我已经转换了那些已经和说实话的会话数组,让我头痛。

我想过使用Hashtables和DirecCasting,但这只是让我更加困惑。

任何帮助将大大apreciated。

$response = array(); 

$messages = array(); 

if (!empty($_POST['cbox'])) { 

    if (!empty($_SESSION['opsd_user_'.$_POST['cbox']])) { 
     $messages = $_SESSION['opsd_user_'.$_POST['cbox']]; 
    } 
} else 
{ 

    if (!empty($_POST['blist']) && $_POST['blist'] == 1) { getBList(); } 

    if (!empty($_POST['initialize']) && $_POST['initialize'] == 1) { 
     getStatus(); 

     if (!empty($_SESSION['opsd_sessionvars'])) { 
      $response['initialize'] = $_SESSION['opsd_sessionvars']; 

      if (!empty($_SESSION['opsd_sessionvars']['openCBID']) && !empty($_SESSION['opsd_user_'.$_SESSION['opsd_sessionvars']['openCBID']])) { 
      $messages = array_merge($messages,$_SESSION['opsd_user_'.$_SESSION['opsd_sessionvars']['openCBID']]); 
      } 
     } 
    } else { 

     if (empty($_SESSION['opsd_sessionvars'])) { 
      $_SESSION['opsd_sessionvars'] = array(); 
     } 

     if (!empty($_POST['sessionvars'])) { 
      ksort($_POST['sessionvars']); 
     } else { 
      $_POST['sessionvars'] = ''; 
     } 

     if (!empty($_POST['updatesession']) && $_POST['updatesession'] == 1) { 
      $_SESSION['opsd_sessionvars'] = $_POST['sessionvars']; 
     } 

     if ($_SESSION['opsd_sessionvars'] != $_POST['sessionvars']) { 
      $response['updatesession'] = $_SESSION['opsd_sessionvars']; 
     } 

    } 

    getLastTimestamp(); 
    fetchMessages(); 
} 
+4

首先,你明白代码的作用吗? – 2011-02-23 17:39:04

+0

是的,我知道代码的作用,有一些Ajax帖子进来,这些帖子被更新(一些)到会话变量。有3个不同的领域我正在努力:1 - $ response ['initialize'] = Session ['opsd_sessionvars']; 2 - ksort($ _ POST ['sessionvars']); 3 - $ messages = array_merge($ messages,$ _ SESSION ['opsd_user _'。$ _ SESSION ['opsd_sessionvars'] ['openCBID']]); Iam只是不知道如何转换这些,我想我已经完成了其余的部分 – opsoftware 2011-02-23 19:56:37

+0

您正在努力转换排序和合并操作,显示您没有。 – 2011-02-23 21:34:58

回答

1

我认为你在寻找什么是ASP.NET页面的SessionRequest.Form性能。在页面中使用Session简单查找/替换$ _SESSION应该可行,应该用Request.Form代替$ _POST。

+0

好吧,我得到的,并将作出所需的更改,但我没有得到以下内容: '$ messages = array_merge($ messages,$ _ SESSION ['opsd_user _'。$ _ SESSION ['opsd_sessionvars'] ['openCBID']]) ;' 和 'ksort($ _ POST [ 'sessionvars']);' 我已经检查php.net,但还没有真正能够找到蚂蚁.NET等效。 – opsoftware 2011-02-23 19:27:40

+0

如果$ messages是一个字符串键控数组,那么.NET等价物就是Dictionary(String,* something *)。 ksort()方法等同于将这些相同的键值对推入SortedDictionary(K,V)并遍历它。 – 2011-02-23 21:55:13