首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL数据库中的换行转换为CURL连接

问将MySQL数据库中的换行转换为CURL连接
EN

Stack Overflow用户
提问于 2013-10-22 19:55:19
回答 2查看 344关注 0票数 0

我正在将一个文本块作为VARCHAR(300)存储在一个MySQL数据库中。用户通过textarea发布此文本,并在插入之前使用mysql_real_escape_string对其进行转义。

然后,我将使用以下PHP代码,通过CURL将此文本删除并发布:

代码语言:javascript
复制
curl_setopt($curl_handlers[$id], CURLOPT_POSTFIELDS, array("Text" => $text));

唯一的问题是,接收到的URL期望换行符被编码为%0a。我假设换行符以\r\n的形式存储在MySQL中。

在通过CURL发布文本之前,如何可靠地将存储在MySQL中的换行符转换为%0a?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-22 20:05:51

似乎你需要urlencode你的变量。

代码语言:javascript
复制
$urlencoded_text = urlencode( $text );
curl_setopt($curl_handlers[$id], CURLOPT_POSTFIELDS, array("Text" => $urlencoded_text ));

但是,\r\n将被转换为%0D%0A (\r => %0D,\n => %0A),因此如果您确实希望只发送%0A进行换行,则可能需要清理它。

更新:

要将\r\n转换为\n,只需使用PHP的str_replace函数:

代码语言:javascript
复制
$text = str_replace( "\r\n", "\n", $text );

注意,解释\r\n需要双引号。

然后:

代码语言:javascript
复制
$urlencoded_text = urlencode( $text );

$urlencoded_text现在只包含%0A而不是\r\n。

票数 0
EN

Stack Overflow用户

发布于 2013-10-23 15:27:09

我发现在MySQL中,换行符确实是以MySQL的形式存储的,所以我需要用\n (在接收端被正确地接受为%0A )替换它。

代码语言:javascript
复制
$text = str_replace("\r\n","\n",$text);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19527108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档