简体   繁体   中英

php - replace string occurrences

I have a string "First line | second line | third line" How can I replace | with a new line character?

I'm trying to use preg_replace but with no liuck

here it is

str_replace('|',"\n",$string);

when \\n is placed in double qouted string it changes to a new line

Use this:

str_replace('|', PHP_EOL, $str);

You should use PHP_EOL instead of "\\n" because PHP_EOL will always work on all server platforms. (NB. Windows uses "\\r\\n" and unix/linux uses "\\n" ).

Using strtr is a tad faster than str_replace or preg_replace .

echo strtr($string,'|', "\n");

Mind the double quotes around the \\n .

Also, if you want to output HTML, a newline char is not sufficient, you need to replace it with <br /> tags.

echo str_replace("|", "<br />\n", $string);

There is more generic case where eg '' serves as replacwment string:

//  Provides: Hll Wrld f PHP
$vowels = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"];
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM