Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php sqlsrv_fetch_数组返回json_Php_Sql_Json - Fatal编程技术网

php sqlsrv_fetch_数组返回json

php sqlsrv_fetch_数组返回json,php,sql,json,Php,Sql,Json,任何人都可以帮忙。。如何从TSQL数据库的数据提取中删除\r\n?我正在使用PHP检索数据 http://localhost/model1.php?model=ROLL 就像在中提到的切向垂直,也可能像,当我尝试以下代码示例时: <?php // ref: https://stackoverflow.com/q/66576069/1167750 $_GET['model'] = "2 ROLLING HOOPS\r\nAND 2 SETS OF 3\r\nCORRUGATIO

任何人都可以帮忙。。如何从TSQL数据库的数据提取中删除\r\n?我正在使用PHP检索数据

http://localhost/model1.php?model=ROLL


就像在中提到的切向垂直,也可能像,当我尝试以下代码示例时:

<?php

// ref: https://stackoverflow.com/q/66576069/1167750
$_GET['model'] = "2 ROLLING HOOPS\r\nAND 2 SETS OF 3\r\nCORRUGATIONS;";

$model = (isset($_GET['model'])) ? $_GET['model'] : '';

// ref: https://stackoverflow.com/questions/66576069
//   /php-sqlsrv-fetch-array-return-to-json#comment117691397_66576069
$model = str_replace("\r\n", " ", $model);

echo "Result:\n";
echo $model;
echo "\n";

?>
如果我在执行
str_replace('\r\n','$model)时仅使用单引号我得到以下输出:

Result:
2 ROLLING HOOPS
AND 2 SETS OF 3
CORRUGATIONS;
这可能不是你想要的结果。因此,我仍然建议对此使用双引号方法

我建议您尝试一个简单的代码示例(如本文所述),看看您是否得到了相同的结果。这可能有助于缩小影响结果的其他因素。例如,在此过程中,您的
$\u GET['model']
$model
相关内容可能发生了一些奇怪的情况

此外,为了安全,我建议在不久的将来使用!如果有人将奇怪的输入作为$\u GET['model']变量发送给您,这是非常困难的

更新:

在使用本文前面的测试代码尝试类似的示例URL之后:
http://localhost/q26.php?model=2%20ROLLING%20HOOPS\r\n和%202%20集%203中的%20集\r\n腐败

我发现我需要修改下面的
str\u replace()
行,使其看起来像这样:

$model = str_replace("\\r\\n", " ", $model);
为了补偿读取
\r\n
的方式

因此,相关的更新示例代码目前如下所示:

<?php

$model = (isset($_GET['model'])) ? $_GET['model'] : '';

// ref: https://stackoverflow.com/questions/66576069
//   /php-sqlsrv-fetch-array-return-to-json#comment117691397_66576069
$model = str_replace("\\r\\n", " ", $model);

echo "Result:\n";
echo $model;
echo "\n";

?>

我不确定为什么
\r\n
部分与浏览器有差异。为了检查,我尝试了前面的示例查询中的相关更新代码,它似乎在Chrome(版本88.0.x)和Firefox(版本86.0.x)中对我都有效:

铬结果:

Firefox结果:

str\u replace(“\r\n”,”,$str)
str\u replace(“\r\n”,”,$str)我已经实现了这一点。但是什么也没有发生$model=str_replace('\r\n','$model);您确定$model变量具有您认为它具有的文本吗?暂时放置一个打印($model)可能是个好主意;在代码中第一行的前面一行,以查看该变量包含的内容。:)$模型来自URL参数..我检测到问题可能来自浏览器。。如果im使用mozilla\r\n仍显示..但如果im使用chrome\r\n未显示。。。到底是什么问题?你能建议我如何根据上面的代码实现准备好的语句吗?嗨@twister,我已经更新了上面的帖子,以可能解决你的第一点,尽管它可能无法回答你的问题。@twister:关于你关于实现准备好的语句的问题,我认为这可能是一个与您原来的帖子完全不同的主题,您可能想提出一个新问题,即如何为语句的
部分(如
部分)实现准备好的语句。但在这样做之前,我建议在网上搜索一下,看看这个问题是否已经得到了回答。通过快速搜索,我发现这可能解决了这个问题。@twister与中讨论的语句相比,其工作方式可能有所不同。
$model = str_replace("\\r\\n", " ", $model);
<?php

$model = (isset($_GET['model'])) ? $_GET['model'] : '';

// ref: https://stackoverflow.com/questions/66576069
//   /php-sqlsrv-fetch-array-return-to-json#comment117691397_66576069
$model = str_replace("\\r\\n", " ", $model);

echo "Result:\n";
echo $model;
echo "\n";

?>