0

So I have this output:

Line 1.
Line 2.
Line 3.
Line 4. Data
Line 5.
Line 6.

I want to have:

Line1. Data

What I do:

trim($dom->saveHTML(), "\n");

What I get (6th line removed, I want line 1, 2, 3, 5 to be removed as well):

Line 1.
Line 2.
Line 3.
Line 4. Data
Line 5.

What I get literally:

What I get literally

Rahil Wazir
  • 10,007
  • 11
  • 42
  • 64
Szymon Toda
  • 4,454
  • 11
  • 43
  • 62

1 Answers1

5

Your string is equal to \r\n\r\n\t\r\ndata\r\n\t which is CR LF CR LF TAB CR LF "data" CR LF TAB. You're only trimming LF (\n) in your trim() call, which is why you don't trim CR (\r) and TAB (\t) also present in your string.

Try removing the second parameter (which specifies what characters should be trimmed), it will take care all of the whitespace characters.

As of Docs:

This function returns a string with whitespace stripped from the beginning and end of str. Without the second parameter, trim() will strip these characters:

" " (ASCII 32 (0x20)), an ordinary space.
"\t" (ASCII 9 (0x09)), a tab.
"\n" (ASCII 10 (0x0A)), a new line (line feed).
"\r" (ASCII 13 (0x0D)), a carriage return.
"\0" (ASCII 0 (0x00)), the NUL-byte.
"\x0B" (ASCII 11 (0x0B)), a vertical tab.
h2ooooooo
  • 39,111
  • 8
  • 68
  • 102
Rahil Wazir
  • 10,007
  • 11
  • 42
  • 64