如何通过&;&;&;操作符到下一个PHP页面并在页面上显示


How to pass "&" operator to next php page and get to display at page?

你好朋友,我有一些小问题与我的查询,我不能解决它。

$comp = mysql_query("SELECT * from abc order by name ASC");
            $count = mysql_num_rows($comp);
            $data = array();
                while($row = mysql_fetch_assoc($comp)) {
                  $l = urlencode($row['name'][0]); // first letter/number
                    $category_list[$l][]=( $row['name']);
                }?>
                <ul>
                <?php
                if(is_array($category_list)){
                foreach($category_list as $k=>$v ) {?>
                    <div class="comp_num"><h3><u><?php echo $k ?></u></h3></div> 
                    <div class="comp_list">
                <?php
                    foreach($v as $cat) {
                      //echo "<div>$cat</div>"; // category name?>
                      <li><a href="www.abc.com?.c=<?php echo $cat ?>"><?php echo $cat ?></a></li>
                  <?php }?>
                </div>
                 <?php }?>
                  </ul>
                <?php
                }
                ?>

www.abc.com/p_review_page ? c = 1% 20 c%20& % 20 c % 20公司% 20有限公司

当我执行这段代码时,这段代码将转义来自"&"操作符的所有字符串

<?php 
            if(isset($_GET["c"]))
            {
            $c=mysql_real_escape_string($_GET['c']);
            }   
            echo "$c";      
            }
?>

我得到这样的结果:1 C

但是我想显示"1 C &"

如何解决…请帮助

&是URL中参数之间的分隔符。如果你想把它包含在参数中,它必须用十六进制编码为%26,所以它应该是:

www.abc.com/p_review_page?c=1%20C%20%26%20C%20incorporation%20Ltd.

如果你在PHP中创建URL,你应该使用urlencode()来编码每个参数。下面是代码:

foreach($v as $cat) { ?>
    <li><a href="www.abc.com?c=<?php echo urlencode($cat) ?>"><?php echo htmlentities($cat) ?></a></li>
<?php }?>

试试这个:

$url = '?' . http_build_query(array(
  'say' => 'A & B'
));

//然后输入:

echo $_GET['say'];

$category_list=http_build_query(array(1=>'C & C in',2=>'A & B'));

或者你可以把数组写成

is_array(http_build_query($category_list))

首先您没有正确地编码您的URL。&符号&变为%26。否则,它将用作更多查询字符串变量的分隔符。

另外,当你想回显一个变量时,不要使用字符串插值…回显它:

echo $c;

最后,您应该考虑切换到PDO并使用准备好的/参数化的查询。mysql_*函数集将很快从PHP中删除。