Перевод некоторых классических ASP (vbScript) на PHP - PullRequest
0 голосов
/ 27 июня 2011

Я пытаюсь перевести блок Классического ASP (vbScript) в PHP. Я сделал честную попытку, но мой перевод, кажется, не является правильным. Кто-нибудь может мне помочь?

Во-первых, код vbScript:

szTemp = Request.ServerVariables("URL")
aryCrumbs = Split(szTemp,"/")
iMax = Ubound(aryCrumbs)

szCrumbPath = "http://" & Request.ServerVariables("SERVER_NAME")
szTemp = "<a href=""" & szCrumbPath & """ style=""color:#600;"">Home</a>"

For i = 0 To iMax -2
szCrumbPath = szCrumbPath & "/" & aryCrumbs(i)
szTemp = szTemp & "  &gt; <a href=""" & szCrumbPath & """ style=""color:#600;"">" & CleanUp(aryCrumbs(i)) & "</a>"    'Note: The &gt; in this line refers to a server request variable. 
Next

GetCrumbsArticleCategoryLevel = szTemp & "<span style=""color:#600;"">  &gt; " & CleanUp(aryCrumbs(i)) & "</span>"

А вот моя попытка перевода на PHP:

$szTemp = $_SERVER["PATH_INFO"];    // Get current URL path (doesn't include www)
$aryCrumbs = explode("/",$szTemp);  // Split path name by slashes into an array
$iMax = count($aryCrumbs);          // Count array.
$szCrumbPath = "http://". $_SERVER["HTTP_HOST"];      // Add on http to web server name
$szTemp = '<a href="' . $szCrumbPath . '" style=&quot;color:#600;&quot;>Home</a>'; 

for ($i=0; $i<=($iMax-2); $i++) {

$szCrumbPath = $szCrumbPath . "/" . $aryCrumbs[$i];
$szTemp = $szTemp ." &gt; <a href=&quot;" . $szCrumbPath . "&quot; style=&quot;color:#600;&quot;". ">" . CleanUp($aryCrumbs[$i]) . "</a>";
}

$GetCrumbsArticleCategoryLevel = $szTemp."<span style=&quot;color:#600;&quot;>&gt; ".CleanUp($aryCrumbs[$i])."</span>";

1 Ответ

2 голосов
/ 27 июня 2011

В PHP, чтобы получить «необходимо разделить его с помощью \, поэтому« становится »\

Пример:

$szTemp = "<a href=\"" . $szCrumbPath . "\" style=\"color: #600\">Home</a>";

Перевод

Я предположил, что вы используете Request.ServerVariables ("gt"), который в PHP равнозначен $ _SERVER, в противном случае для Request.Form используйте $ _POST или $ _GET для Request.QueryString.

Убедитесь, что пользователь может изменять значения, которые вы кодируете в html, используя функцию htmlspecialchars (), в противном случае вы оставляете вещи открытыми для атаки межсайтового скриптинга [XSS]

$szTemp = $_SERVER['REQUEST_URI'];
$aryCrumbs = explode("/", $szTemp);
$iMax = count($aryCrumbs);

$szCrumbPath = "http://". $_SERVER["HTTP_HOST"];
$szTemp = "<a href=\"" . $szCrumbPath . "\" style=\"color: #600\">Home</a>";

for ($i=0; $i <= ($iMax - 2); $i++) {
    $szCrumbPath = $szCrumbPath . "/" . $aryCrumbs[$i];
    $szTemp = $szTemp . " &gt; <a href=\"" . $szCrumbPath . "\" style=\"color: #600;\">" . CleanUp($aryCrumbs[$i]) . "</a>"; //The htmlspecialchars prevents a XSS attack
}
$GetCrumbsArticleCategoryLevel = $szTemp . "<span style=\"color:#600\"> &gt; " . CleanUp($aryCrumbs[$i]) . "</span>";
...