PHP URL在循环中编码?

PHP URL在循环中编码?,php,html,urlencode,Php,Html,Urlencode,我是php编程新手,所以请耐心等待。我有一点代码,可以在0到9之间进行while循环,它提供了一个指向页面的链接,并向url添加了一些代码,作为第2页url的获取数据 <?php $link_name = "Page 2"; ?> <?php $company = "Super & Sprunklers"; ?> <?php $id = 0; while ($id <=10) { if ($id < 10) {

我是php编程新手,所以请耐心等待。我有一点代码,可以在0到9之间进行while循环,它提供了一个指向页面的链接,并向url添加了一些代码,作为第2页url的获取数据

<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers"; ?>
<?php $id = 0; 

    while ($id <=10) {
        if ($id < 10) {
        echo "<a href=\"page2.php?id={$id}&company={$company}\">{$link_name}?id={$id}&company={$company}</a>";
    echo "<br />";

        } else {
    echo "<a href=\"page2.php\">{$link_name}</a>";
        }
    $id++;
    }
?>
<pre>
<?php 

//print_r ($_GET);
//print_r ($GLOBALS);
$id = "";
$company = "";
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['company'])) {$company = $_GET['company']; }
echo $id." ".$company;
?>
</pre>
但是,当我查看第2页并看到分配给$id和$company的两个变量的get数组时,因为需要对“&”进行urlencode。这是我的第2页代码,当加载没有变量的页面时,我收到了一条警告,所以我在第2页给了它们空值

<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers"; ?>
<?php $id = 0; 

    while ($id <=10) {
        if ($id < 10) {
        echo "<a href=\"page2.php?id={$id}&company={$company}\">{$link_name}?id={$id}&company={$company}</a>";
    echo "<br />";

        } else {
    echo "<a href=\"page2.php\">{$link_name}</a>";
        }
    $id++;
    }
?>
<pre>
<?php 

//print_r ($_GET);
//print_r ($GLOBALS);
$id = "";
$company = "";
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['company'])) {$company = $_GET['company']; }
echo $id." ".$company;
?>
</pre>
补充

echo "<a href=\"page2.php?id={$id}&company={$companyencoded}

echo”您已在第一位编码,需要在第二位解码

    <pre>
<?php 
$id = "";
$company = "";
if (isset($_GET['id'])) {$id = $_GET['id'];}
if (isset($_GET['company'])) {$company = $_GET['company']; }
echo $id." ".  urldecode($company);
?>
</pre>

在它的url中,我对字符进行了编码。 并且可以在page2.php上解码

<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers"; 
  $company = urlencode($company); ?>
<?php $id = 0; 

    while ($id <=10) {
        if ($id < 10) {
        echo "<a href=\"page2.php?id={$id}&company={$company}\">{$link_name}?id={$id}&company=".urldecode($company)."</a>";
    echo "<br />";

        } else {
    echo "<a href=\"page2.php\">{$link_name}</a>";
        }
    $id++;
    }
?>


为蛋糕的和平干杯这是一个有效的答案

$company = urldecode($_GET['company']);


为了让第2页正确显示正确的数组。非常感谢大家。这一行代码让我非常困惑,$company=urlencode($company)。我认为这就像在电子表格中进行循环引用一样。

其实很简单

将公司名称作为查询字符串传递时,请使用urlencode()。在第2页上,确保使用URDECODE()对该值进行解码

这是您的URL:


这应该可以正常工作。

{urlencode($company)}如何
echo”“;
?在第二页中没有变量
$companyencoded
company
作为参数传递以获取请求,可以使用
$\u get['company'访问
就像您在第二页中编写的代码一样。谢谢大家的帮助。Linial我已经尝试过这种方法,第2页上的数组拆分使Sprunkler没有值。Birdspider我也尝试过你的方法,但结果与第2页上的get数组相似,所以谢谢,但没有雪茄。谢谢你能解释一下为什么分配$url而不是$url吗n urlencode$company?例如$company=“Super&Sprunklers”;$company=urlencode($company);这是你的选择,无论你想选择什么来完成这项任务。这里最主要的是对特殊字符进行编码,然后别忘了将其解码回来。你是对的,我创建了另一个不必要的变量:p.Hello,当我尝试&company=“.urlencode($company)”,它将第2页上的数组拆分为id=>0[公司]=>Super[Sprunklers]=>。超级全局数组$\u GET应该在回显到第2页时自动添加urldecode。是的。但不管是否解码,它都应该打印出来,没有任何问题。我在本地测试了它,两个都正常工作
<?php $link_name = "Page 2"; ?>
<?php $company = "Super & Sprunklers"; 
  $company = urlencode($company); ?>
<?php $id = 0; 

    while ($id <=10) {
        if ($id < 10) {
        echo "<a href=\"page2.php?id={$id}&company={$company}\">{$link_name}?id={$id}&company=".urldecode($company)."</a>";
    echo "<br />";

        } else {
    echo "<a href=\"page2.php\">{$link_name}</a>";
        }
    $id++;
    }
?>
echo "<a href=\"page2.php?id={$id}&company=".urlencode($company)."\">{$link_name}?id={$id}&company={$company}</a>";
$company = urldecode($_GET['company']);