2014-11-14 49 views
0

我有一个表格文本区域,我希望用户将数据粘贴到,然后提交时处理一些PHP并返回列表,但编号每carraige返回。PHP排序输入textarea列表到编号列表

例如,用户输入;

Ben 
Chris 
Morris 

PHP returns;

1=Ben 
2=Chris 
3=Morris 

尝试了一些preg_replace_callback技术,但无法摸清它。不太熟悉它的工作方式;

$list = $_POST["list"]; $count = 0; 
preg_replace_callback('\r\n', 'rep_count', $list); 

function rep_count($matches) { 
    global $count; 
    return '<br />' . $count++; 
    } 

echo $list; 
+2

你可以展示你到目前为止尝试过的吗? – vascowhite 2014-11-14 18:29:12

+1

如果您从PHP中的表单中提取“var_dump”内容,您会得到什么? – pbaldauf 2014-11-14 18:29:32

+0

难道你爆炸“\ n”并循环?附加数字 – Bolli 2014-11-14 18:32:16

回答

1

你有一对夫妇的错误:

preg_replace_callback('\r\n', 'rep_count', $list); 
         ^^^^^^ 

你的模式是不正确 - 缺少分隔符,而应该是/\r\n/。同样,使用' - 引用字符串的模式使\r\n只是转义字母字符 - ' - 引用的字符串没有“元字符”,如换行符和回车符。

基本上你需要

preg_replace_callback("/\r\n/", 'rep_count', $list); 

注意"报价和/定界符。

+0

不知道它是否重要,但尝试将函数定义移至preg调用之前。定义顺序在php中通常无关紧要,但是谁知道呢......也许是preg回调函数呢。 – 2014-11-14 18:39:33

+0

谢谢,在阅读评论和看起来不错之前这样做,现在要弄清楚如何正确显示列表 – user1022585 2014-11-14 18:40:10