【发布时间】:2012-05-24 06:57:08
【问题描述】:
我有一个这样的日语字符串(从数据库中获取)
$myString = "いっぱいんどん"
因为 API 要求输入字符串必须是 URL 编码的,所以我使用它进行编码
urlencode($myString);
问题是 API 平台页面在文本区域中显示该字符串。
如您所知,HTML texarea 不允许使用 HTML 换行。它只允许“ ”显示换行符。
所以现在我不知道如何在API平台的textarea中显示$myString。
我的工作流程:我的网站 -> 将 $myString 传递给 API -> $myString 显示在 API 平台页面(不是我的)
更新:
API 是这样的
< a href="diary:self?guid=ON&url=http%3A%2F%2Fredirect_uri.com&subject=%83e%83X%83g&body=....">Something< /a>
我必须将 myString 传递给 body=...
更新:
这是我尝试过的:
function convertBrTagtoASCII($string) {
$string = str_replace(array("</br>", "</br >", "<br>", "<br >"), " ", $string);
return $string;
}
$converted = convertBrTagtoASCII($myString);
将所有 br 标记替换为 & #10;,然后是 urlencode($converted),然后传递给 API 链接的“body”参数。 textarea中的输出是
いっぱい んどん
似乎平台不仅urldecode而且还转义字符串。 :(
【问题讨论】:
-
你不能只使用某种正则表达式转换将 urlencoded 结果中的所有
"< br />"转换为"&#10"的吗?编辑:或者您无法控制平台页面。在这种情况下,您可以在将其提交给urlencode函数之前进行转换吗? -
$myString = "いっぱい".'\n'."んどん";
-
另外,你可以在 textareas 中使用 "\n",所以你可以使用 str_replace();用“\n”替换“
” -
@zebedia49: 如果我先对 mystring 进行 urlencode,我不能 preg_replace 用 替换
,因为该标签已更改。 -
@Lex:在 Chrome 中,\n 不会在 textarea 中打印换行符。自己试试 >>
标签: php html line-breaks