存储文本区域的换行符和缩进

时间:2015-11-29 09:54:08

标签: php html mysql facebook-graph-api

我正在开发一个Web应用程序,用户将获得一个HMTL表单来完成。该表单包含一个文本区域和一些复选框。调用htmlentities后,文本区域中的文本将存储在数据库中。管理员网站然后恢复该帖子,将其显示给管理员,如果他们批准,它将通过Facebook SDK for PHP发布在Facebook页面上。

我要解决的问题是,如果用户的帖子包含换行符或子弹列表,则它们不会显示在管理员网站中,显然它们不会按照应有的方式发布在Facebook上。这里需要注意的是,我不需要粗体,斜体或带下划线的文字。我只想保留用户输入的任何空白区域。

现在,如果用户发布此内容:

- First Line
   - Second Line
-Third Line

管理员得到的是:

-First Line - Second Line - Third Line

所以基本上我需要类似于Google表单的功能。管理员应该能够看到每个空白区域,并且当帖子通过复制粘贴或API在Facebook上发布时,也应保留该空白区域。

1 个答案:

答案 0 :(得分:0)

我认为这是因为你看到的管理员看到的结果是以HTML格式输出的\ n符号而非br。试试这个:

    StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(new FileInputStream("article.txt"))));
    st.whitespaceChars(' ', '/');
    st.wordChars('a', 'Z');

    int maxSize = 400;
    String[] words = new String[maxSize];
    int[] counts = new int[maxSize];
    int length = 0;
    int token;
    do {
        token = st.nextToken();
        if (token == StreamTokenizer.TT_WORD) {
            String word = st.sval.toLowerCase();
            boolean newWord = true;
            for (int i = 0; i < length; i++)
            {
                if (words[i].equals(word))
                {
                    counts[i]++;
                    newWord = false;
                    break;
                }
            }
            if (newWord) {
                words[length] = word;
                counts[length] = 1;
                length++;
            }
        }
    }
    while (token != StreamTokenizer.TT_EOF);

    for (int i = 0; i < length; i++) {
        System.out.println(words[i] + ": " + counts[i]);
    }