微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 URL (PHP) 中删除“%0D%0A”

如何解决从 URL (PHP) 中删除“%0D%0A”

我有一个购物清单页面,它在每个产品下方显示一个“更多信息”按钮,以显示其完整信息。所有这些信息都是从我的 txt 文件中读取的。每个产品都有一个唯一的产品 ID。因此,“更多信息”按钮会将产品 ID 从购物清单页面传递到完整信息页面,在那里它将与产品 ID 数组进行比较并显示它。现在,如果我删除 URL 中的 "%0D%0A",它只能显示我的完整信息。有没有办法解决这个问题?

实际网址:http://localhost/PHP/test2/fullInfo.PHP?Submit=def-4332-99%0D%0A

我的txt.file

abc-1234-99
Cedric
93482812
cedric@hotmail.com
guitar
2000
Yamaha
null
New
---------------------------------------------
def-4332-99
Wendy
98238432
wendy@hotmail.com
guitar
2010
Yamaha
Scratches on the side
Used
---------------------------------------------
fgh-4567-99
Jason
98238432
wendy@hotmail.com
guitar
2010
Yamaha
Scratches on the side
Used

我的按钮($line0 是我从我的 txt 文件中读取的产品 ID 数组。)

<?PHP
    $item = count($line0);
    for ($c=0; $c<$item; $c++) {
        $value4 = $line4[$c];
        $value8 = $line8[$c];
        $value0 = $line0[$c];
             
        echo "<td><b>Product ID: $value0</b><br>Instrument: $value4<br>Condition: $value8";             
        ?>
        <form method="get" action="fullInfo.PHP">
        <input type="hidden" name="Submit" value="<?PHP echo htmlspecialchars($value0); ?>" />
        <input type="submit" class="submit" value="More information" /> 
        </form>

我的 fullInfo.PHP 页面(所以我对这个页面的问题是我能够成功执行 preg_match 但它无法回显 $line0 - $line8 除非我删除 "%0D%0A"来自网址)

    <?PHP
        
    $handle = @fopen('listings.txt',"r");
    $row = 0;
    $count = 0;
    $line0 = [];
    $line1 = [];
    $line2 = [];
    $line3 = [];
    $line4 = [];
    $line5 = [];
    $line6 = [];
    $line7 = [];
    $line8 = [];
    $line9 = [];
        
    if ($handle) { 
       while (!feof($handle)) { 
           $store = fgets($handle,4096); 
           if ($row == 10){
            $row = 0;
            $count++;
        }
        if ($row == 0) 
        {
            $line0[] = strval($store);
        }
        else if($row == 1) {
    $line1[] = strval($store);}
        else if($row == 2) {
    $line2[] = strval($store);}
        else if($row == 3) {
    $line3[] = strval($store);}
        else if($row == 4) {
    $line4[] = strval($store);}
        else if($row == 5) {
    $line5[] = strval($store);}
        else if($row == 6) {
    $line6[] = strval($store);}
        else if($row == 7) {
    $line7[] = strval($store);}
        else if($row == 8) {
    $line8[] = strval($store);}
        
        $row++;
       }
            
          $id = 0;
          
          
        if (isset($_GET['Submit'])) {
            $id=$_GET['Submit'];
        }
        
            
          $item = count($line0);
          
            for ($c=0; $c<$item; $c++)
        {
    
            if(preg_match("/$id/",$line0[$c])) {
            echo $line0[$c],"<br>";
            echo $line1[$c],"<br>";
            echo $line2[$c],"<br>";
            echo $line3[$c],"<br>";
            echo $line4[$c],"<br>";
            echo $line5[$c],"<br>";
            echo $line6[$c],"<br>";
            echo $line7[$c],"<br>";
            echo $line8[$c],"<br>";
            break;
            }
        }
        ?>
    
    <?PHP
   fclose($handle); 
} 
    ?>

解决方法

您可以使用str_replace()函数

$my_url = "http://localhost/php/test2/fullInfo.php?Submit=def-4332-99%0D%0A";

$my_url_without_percent = str_replace("%0D","",$my_url);
$my_url_without_percent = str_replace("%0A",$my_url_without_percent);
//Output: "http://localhost/php/test2/fullInfo.php?Submit=def-4332-99"

这对您有帮助,还是我不明白您的问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。