473,326 Members | 2,012 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,326 software developers and data experts.

Add character to every line of text?

384 256MB
I have a function that takes a piece of text from the database and puts it into a textarea, I'm trying to put a symbol like '>' beside very line of text thats taken from the database and put into the textarea to show its taken from the database, can anyone help?
Jan 26 '09 #1
14 5686
Dormilich
8,658 Expert Mod 8TB
if you have defined the number of rows, then you can add before every (rows – 2) characters your indicator "> ".
Jan 26 '09 #2
ziycon
384 256MB
The problem is, its a textarea and when the first line is populated it goes to the next line so i don't know when it will go to the next line!?
Jan 26 '09 #3
Atli
5,058 Expert 4TB
Hi.

First of all, you can not put the symbol ">" into your HTML output without causing all sorts of problems. It is a reserved character.
Use the HTML symbol ">" instead. (Without the quotes.)

I'm not quite getting what you are trying to accomplish here.
Do you want to put ">" before every line of text inside your textbox?
If so, try adding the HTML symbol after each new-line character.
(Replacing all occurences of "\n" with "\n>" should do that. Again, without the quotes)

If not, please elaborate.
Remember, we like code examples and error messages ;]
Jan 26 '09 #4
ziycon
384 256MB
I understand about the >. Ok I'll try and explain it better. I have a textarea on a page, when the page loads it get a a string, it can be a small or large string, the string is put into the textarea like below:
Expand|Select|Wrap|Line Numbers
  1. echo '<textarea name="body" cols="75" rows="10">'.getText().'</textarea>';
Now, the text is wrapped automatically to fit into the textarea so ther is no new-line characters that I'm aware of.

The textare is a message reply box so the text being taken from the database is the received message, i need to add '>' to show its the received text so when a user enters new text you can tell the difference.

Hope this makes it a bit easier too understand.
Jan 26 '09 #5
Atli
5,058 Expert 4TB
Ok, so you want the old message, the one from the database, to be sent along with the new text?

Somewhat like:
> This is some text from the database.
> A text that should appear quoted.
> Which means each line should start with
> a ">" symbol.

This is a new message.
Something the current use would type
into the textarea.
If so, then you would just have to add the &gt; symbol on ever new-line.
If there are no new-lines (if the text is one long line), you could split it into lines using the wordwrap function, and have the function add the &gt; symbol on every new line.
Jan 26 '09 #6
ziycon
384 256MB
Heres the function i was trying to use but with no luck:
Everytime data is entered into the database it adds a <p></p> to every line, if you get me?
Expand|Select|Wrap|Line Numbers
  1. function formatReplyText($msg) {
  2.     $msg = str_replace("<p>&gt;&gt;","&gt;&gt;&gt;",$msg);
  3.     $msg = str_replace("<p>&gt;","&gt;&gt;",$msg);
  4.     $msg = str_replace("<p>","&gt;",$msg);
  5.     $msg = str_replace("</p>","<br /><p>",$msg);
  6.  
  7.     //$msg = wordwrap($msg, 12, "<br />\n");
  8.     //$msg = str_replace("&gt;&gt;","&gt;&gt;&gt;",$msg);
  9.     //$msg = str_replace("&gt;","&gt;&gt;",$msg);
  10.     //$msg = str_replace("<p>","&gt;",$msg);
  11.  
  12.  
  13.  
  14.     //$msg = str_replace("</p>","<br />\n",$msg);
  15.  
  16.     return $msg;
  17. }
Jan 27 '09 #7
Atli
5,058 Expert 4TB
Is the return value of that supposed to go inside the <textarea>?

If so, then you should not be using HTML tags in it.
The value of a textarea should be formatted like normal text, not HTML.

So, if your message were something like:
Expand|Select|Wrap|Line Numbers
  1. First line
  2. Second line
  3. Third line
And you did something like this to it:
Expand|Select|Wrap|Line Numbers
  1. <?php
  2. function formatText($text) {
  3.   $text = wordwrap($text, 50);
  4.   $text = htmlentities($text, ENT_NOQUOTES, "UTF-8");
  5.   $text = "&gt;" . str_replace("\n", "\n&gt;", $text);
  6.  
  7.   return $text;
  8. }?>
It would display the text in lines, each line no longer than 50 characters and each line prefixed with a > symbol.

If each line is also encapsulated in <p>..</p> tags, you might want to simply remove them by using the str_replace function, passing each of the tags with an empty string.

@ziycon
This is a very very bad thing to do. You should never format your data before putting it into the database.
What if you ever decide to change the format? You would have to update you entire database to fit your new format, which puts it at risk of corruption and all sorts of other problems.

The database should always store the original text. Whatever alterations you need to make before it is displayed on your front-end application should be done on the way out.
Jan 27 '09 #8
ziycon
384 256MB
Its showing up like so when i got to reply:
>

Test message.
I'm using TinyMCE as the editor in the textarea and TinyMCE adds <p></p> on every line.
Jan 27 '09 #9
Atli
5,058 Expert 4TB
If your using the function I just posted, that would mean you are passing it an empty string. (Just made that mistake myself just now... misspelled the variable :P)

This:
Expand|Select|Wrap|Line Numbers
  1. <?php
  2. function formatText($text) {
  3.   $text = wordwrap($text, 70);
  4.   $text = htmlentities($text, ENT_NOQUOTES, "UTF-8");
  5.   $text = "&gt; " . str_replace("\n", "\n&gt; ", $text);
  6.  
  7.   return $text;
  8. }
  9.  
  10. $message = <<<TEXT
  11. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed elementum. Pellentesque mattis. Vestibulum nisl tortor, blandit ut, tincidunt at, fermentum at, massa. Praesent dictum semper justo. Fusce et massa. Sed nisi tellus, venenatis vel, condimentum nec, iaculis sollicitudin, turpis. Ut sit amet urna eget eros ullamcorper ullamcorper. Integer volutpat. 
  12. TEXT;
  13. ?>
  14. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  15. <html>
  16.     <head>
  17.         <title>Test</title>
  18.     </head>
  19.     <body>
  20.         <textarea cols="72" rows="10"><?php echo formatText($message); ?></textarea>
  21.     </body>
  22. </html>
Gives:
Expand|Select|Wrap|Line Numbers
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.     <head>
  4.         <title>Test</title>
  5.     </head>
  6.     <body>
  7.         <textarea cols="72" rows="10">&gt; Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
  8. &gt; elementum. Pellentesque mattis. Vestibulum nisl tortor, blandit ut,
  9. &gt; tincidunt at, fermentum at, massa. Praesent dictum semper justo. Fusce
  10. &gt; et massa. Sed nisi tellus, venenatis vel, condimentum nec, iaculis
  11. &gt; sollicitudin, turpis. Ut sit amet urna eget eros ullamcorper
  12. &gt; ullamcorper. Integer volutpat. </textarea>
  13.     </body>
  14. </html>
Jan 27 '09 #10
ziycon
384 256MB
Got it working fine without TinyMCE being used. One last thing about it, how would i go about adding a blank line under the reply text to seperate it from the new message?
Jan 27 '09 #11
Dormilich
8,658 Expert Mod 8TB
adding two consecutive newline characters (e.g. "\n\n")
Jan 27 '09 #12
ziycon
384 256MB
@Dormilich
Tried this so many ways but its just putting an empty line under every line instead of just one empty line after all the text? I really appreciate all your help.
Jan 27 '09 #13
Dormilich
8,658 Expert Mod 8TB
@ziycon
where do you put the double newline? if I assume you use Atli's function, putting it right after the conversion has finished should do it.
Expand|Select|Wrap|Line Numbers
  1. function formatText($text) {
  2. // code ...
  3.     return $text . "\n\n";
  4. }
Jan 27 '09 #14
ziycon
384 256MB
Got it working perfectly, thanks ever so much!
Jan 27 '09 #15

Sign in to post your reply or Sign up for a free account.

Similar topics

3
by: Curious Angel | last post by:
Help? Spec Character Problems w/JAVASCRIPT TOOLTIP Hi, I'm experiencing bizarre problems with quote marks that previously displayed properly in a Javascript TOOLTIP I wrote a year ago . . . and...
4
by: Surya Kiran | last post by:
Hi all, I'm facing a wierd problem. I've a file, which is getting updated every now and then. and i'm having another program, which monitors the file. I've to read the file line by line, and in...
3
by: danmc91 | last post by:
Hi, I'm just getting going with xml and xslt. I'm trying to write what are essentially man pages and I need 3 output formats. 1) nroff -man format for real man pages 2) html for an online...
2
by: Mike Turco | last post by:
I have a bunch of text files I'm trying to parse. The files all have several occurrences of chr(26), which is EOF (End Of File). Each file is ~ 1meg of text, and every file is a real mess. The...
7
by: teachtiro | last post by:
Hi, 'C' says \ is the escape character to be used when characters are to be interpreted in an uncommon sense, e.g. \t usage in printf(), but for printing % through printf(), i have read that %%...
18
by: james | last post by:
Hi, I am loading a CSV file ( Comma Seperated Value) into a Richtext box. I have a routine that splits the data up when it hits the "," and then copies the results into a listbox. The data also...
1
by: Kenneth McDonald | last post by:
I am going to demonstrate my complete lack of understanding as to going back and forth between character encodings, so I hope someone out there can shed some light on this. I have always...
2
by: Nathan Sokalski | last post by:
I have a page which reads the the first line of every *.txt file in a certain directory of mine to use as the Text property of a HyperLink Control. However, in one of my recently added text files...
4
by: Andyza | last post by:
I'm using FileSystemObject to open and write to a tab delimited text file. First, I connect to a database and select some data. Then I create the text file and insert each record in the text...
7
by: stef | last post by:
hello, In the previous language I used, when reading a line by readline, the EOL character was removed. Now I'm reading a text-file with CR+LF at the end of each line, Datafile =...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.