2015-11-11 3 views
1

Я нахожусь в процессе перемещения сайта студийной студии с сервера на базе Windows на Linux. Это все html и php, за исключением одной страницы, которая использует функцию ASP для обновления новых выпусков. Я пытаюсь преобразовать его сам, используя «эхо», но я не мог приблизиться к рабочему коду. Вот оно:Преобразование ASP-функции в PHP

<% 

Function PrintRecord(strImage, strAutore, strTitolo, strInfo, strCredits) 
    dim strRet 
    strRet = strRet + " <td valign=""top"">" 
    strRet = strRet + " <div style=""margin-left: 20px""> " 
    strRet = strRet + "  <img src=""pictures_works/" + strImage + """ height=""80"" width=""80"" border=""1"">" 
    strRet = strRet +" </td>" 
    strRet = strRet + " <td width=""170px"" valign=""top"">" 
    strRet = strRet + "  <font class=""TestoPiccoloNo"">" 
    strRet = strRet + "   <b>" + strAutore + "</b><br>" 
    strRet = strRet + "   " + strTitolo + "<br>" 
    strRet = strRet + "   " + strInfo + "<br>" 
    strRet = strRet + "<i>- " + strCredits + " </i>" 
    strRet = strRet + "  </font>" 
    strRet = strRet + " </div> " 
    strRet = strRet + " </td>" 
    PrintRecord = strRet 
End Function 

%> 

И вот код, я использую, чтобы обновить:

<%=PrintRecord("somepic.jpg","someband","somerecord","somelabel","whodidwhat")%> 

Любая помощь будет оценена. Спасибо!

+1

Вы заставили меня путешествовать 10 лет назад. – Amarnasan

+0

Это именно то место, где был сделан сайт! – brunogermain

ответ

1

В PHP вы можете сделать Multilines строку.

<?php 

function PrintRecord($strImage, $strAutore, $strTitolo, $strInfo, $strCredits){ 
    $strRet = ' 
    <td valign="top"> 
     <div style="margin-left: 20px"> 
     <img src="pictures_works/'.$strImage.'" height="80" width="80" border="1"> 
     </div> 
    </td> 
    <td width="170px" valign="top"> 
    <div> 
     <font class="TestoPiccoloNo"> 
      <b>'.$strAutore.'</b><br> 
      '.$strTitolo.'<br> 
      '.$strInfo.'<br> 
      <i>- '.$strCredits.'</i> 
     </font> 
    </div> 
    </td>'; 
    return $strRet; 
} 
?> 

или Heredoc Синтаксис:

<?php 
function PrintRecord($strImage, $strAutore, $strTitolo, $strInfo, $strCredits){ 
    $strRet = << EOT 
    <td valign="top"> 
     <div style="margin-left: 20px"> 
     <img src="pictures_works/{$strImage}" height="80" width="80" border="1"> 
     </div> 
    </td> 
    <td width="170px" valign="top"> 
    <div> 
     <font class="TestoPiccoloNo"> 
      <b>{$strAutore}</b><br> 
      {$strTitolo}<br> 
      {$strInfo}<br> 
      <i>- {$strCredits}</i> 
     </font> 
    </div> 
    </td> 
    EOT; 
    return $strRet; 
} 
?> 

и использовать его как это:

<?php echo PrintRecord("somepic.jpg","someband","somerecord","somelabel","whodidwhat");?> 

Ну, как это выглядит?

+1

Было бы еще более удобно с [синтаксисом heredoc] (http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc). – syck

+0

@syck: да, это может быть –

+0

Вам не хватает 'echo' или' moorscode

2
  • заменить каждый + с .
  • префиксов переменных с $
  • оканчиваются линии с ;
  • $strRet = $strRet . может быть сокращен до $strRet .=
  • адаптируются открывающий и закрывающий теги
  • Вложите функции с фигурными скобки
  • заменить "" с \"

<?php 

function PrintRecord($strImage, $strAutore, $strTitolo, $strInfo, $strCredits) { 
    $strRet = ''; 
    $strRet .= " <td valign=\"top\">"; 
    $strRet .= " <div style=\"margin-left: 20px\"> "; 
    // : 
    // ...similar 
    // : 
    $strRet .= "   <b>" . $strAutore . "</b><br>"; // example for concatenation 
    // : 
    $strRet .= " </div> "; 
    $strRet .= " </td>"; 
    return $strRet; 
} 

?> 

и

<?php echo PrintRecord("somepic.jpg","someband","somerecord","somelabel","whodidwhat"); ?> 
+0

Вы забыли знак '$' в 'strAutore' – moorscode

+0

Спасибо, исправлено. Меня держали, борясь с проблемами форматирования. – syck

+0

Получил его работу с несколькими изменениями синтаксиса в вашем коде. Теги Html должны находиться между «». Должен ли я отредактировать ваш ответ? Благодаря! – brunogermain

Смежные вопросы