如何解决从 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 举报,一经查实,本站将立刻删除。