使PHP字符串显示在文本区域中的多行上,使用指定的字符将其拆分

使PHP字符串显示在文本区域中的多行上,使用指定的字符将其拆分,php,string,textarea,newline,Php,String,Textarea,Newline,我有以下格式存储在数据库中的选项- 选项1:选项1;选择2:选择2;选项3:选项3;选项4:选项4 用户可以编辑这些选项,因此当它们位于中时,我希望它们显示在单独的行中 option1:Option 1 option2:Option 2 option3:Option 3 option4:Option 4 我试图通过替换“;”来实现这一点用新行分隔选项的字符(str_replace(“;”,PHP_EOL,$poll['poll_options'])-也尝试过“\r\n”) 即使这看起来起作用(

我有以下格式存储在数据库中的选项-

选项1:选项1;选择2:选择2;选项3:选项3;选项4:选项4

用户可以编辑这些选项,因此当它们位于
中时,我希望它们显示在单独的行中

option1:Option 1
option2:Option 2
option3:Option 3
option4:Option 4
我试图通过替换
“;”来实现这一点用新行分隔选项的字符(
str_replace(“;”,PHP_EOL,$poll['poll_options'])
-也尝试过
“\r\n”

即使这看起来起作用(
echo';print_r($poll['poll\u options');echo';
在新行上正确显示选项),当我将文本放置在
中时,选项仅被分隔为一个空格

编辑-我已经将我使用的代码(现在反映在本文中)更改为@johnconde建议的代码,现在它可以在FF中使用

关于如何解决这个问题有什么建议吗?谢谢。

试试:

使用正则表达式比使用正则表达式更容易。

请尝试:


使用正则表达式比使用正则表达式更容易。

Hm,您可以向我们展示生成的HTML源代码吗?因为这在这里起作用……这不是
,而是
。。。。它(除非设置了css的
空白:pre
)将永远不会显示换行符(另请参见。对不起,我是一个甜甜圈-它是一个文本框,但我使用AJAX调用显示一个带字段的内联编辑行)(包括从加载页面时创建的隐藏数据填充的
。现在正在尝试了解如何获取AJAX源代码…为什么要将数据隐藏在DOM元素中,这样可以对其进行各种奇怪的操作/优化?我会加载
json_encode()的输出)
在一个javascript变量中,它的实际内容就少了很多不好的地方。嗯,我用几个变量就可以做到这一点,但是我必须对我的编辑工作方式进行全面的修改,才能在这里实现它。现在只有IE相关的版本中看起来越来越像这样(惊喜,惊喜!),所以我想这次我会把它留下,但以后会把你的建议带到船上。嗯,你能给我们看一下生成的HTML源代码吗?因为它在这里工作……这不是一个
,这是一个
…它(除非设置了css的
空白:pre
)永远不会显示换行符(另请参见。对不起,我是一个甜甜圈-它是一个文本框,但我使用AJAX调用来显示一个内联编辑行,其中包含字段。)(包括从加载页面时创建的隐藏数据填充的
。现在正在尝试了解如何获取AJAX源代码…为什么要将数据隐藏在DOM元素中,这样可以对其进行各种奇怪的操作/优化?我会加载
json_encode()的输出)
在一个javascript变量中,它的实际内容就少了很多不好的地方。嗯,我用几个变量就可以做到这一点,但是我必须对我的编辑工作方式进行全面的修改,才能在这里实现它。现在只有IE相关的版本中看起来越来越像这样(惊喜,惊喜!),所以我想这次就不谈了,但以后会采纳你的建议。虽然
str\u replace
在这里可能更合适,但是
PHP\u EOL
(=服务器上的行anding,而不是客户端)不会带来任何更多的好处,也可能不会解决OPs问题,因为您只是在解决一个编码偏好/可以说是更好的实践,而不是OP提到的问题。在这里直接使用
\r\n
而不是
PHP\u EOL
是否更合适?不,我认为您提倡
PHP\u EOL是正确的e> 在这里,但最有可能的结果是
\n
\r\n
,这两种浏览器都可以很好地处理。因此:您提倡
str\u replace
PHP\u EOL
,这是正确的,但我怀疑它解决了OP存在的问题。使用它可以改进他的代码,但错误在其他地方。您有没有改变根据您的建议,IE中的结果是相同的,但现在在FF中工作。源代码显示字符串在一个新行上断开,但它不是那样显示的。谢谢。虽然
str\u replace
在这里可能更合适,但是
PHP EOL
(=服务器上的行anding,而不是客户端上的行anding)不会带来任何更多的好处,也可能不会解决OPs问题,因为您只是在解决一个编码偏好/可以说是更好的实践,而不是OP提到的问题。在这里直接使用
\r\n
而不是
PHP\u EOL
是否更合适?不,我认为您提倡
PHP\u EOL是正确的e> 在这里,但最有可能的结果是
\n
\r\n
,这两种浏览器都可以很好地处理。因此:您提倡
str\u replace
PHP\u EOL
,这是正确的,但我怀疑它解决了OP存在的问题。使用它可以改进他的代码,但错误在其他地方。您有没有改变根据上面的建议,结果在IE中是相同的,但现在在FF中工作。源代码显示字符串在新行上断开,但它不是那样显示的。谢谢。
$new_text = str_replace(';', PHP_EOL, $poll['poll_options']);