PHP str_replace function problem

  • Thread starter Thread starter chrisalviola
  • Start date Start date
  • Tags Tags
    Function Php
Click For Summary
The PHP code provided is intended to convert HTML text into a format that displays as standard text rather than HTML. A specific issue arises with the line that replaces single spaces with non-breaking spaces ( ), as it does not account for multiple consecutive spaces. While the code works for single spaces, it fails to replace multiple spaces correctly. A suggestion is made to use " " to prevent browsers from collapsing multiple non-breaking spaces into a single space. Additionally, the strip_tags() function is mentioned as a potential solution for handling HTML content. The discussion highlights the importance of addressing these coding nuances, as the thread could benefit many users over time.
chrisalviola
Messages
80
Reaction score
0
I have this PHP code to edit all HTML text to be displayed so that it won't appear as HTML but as standard text.

<?php
function htmlformat($sinput){

$newphrase = str_replace("<", "&lt;", $sinput);
$newphrase = str_replace(">", "&gt;", $newphrase);
$newphrase = str_replace(chr(13),"<br>",$newphrase);
$newphrase = str_replace(chr(34), "&quot;", $newphrase);
$newphrase = str_replace(chr(32), "&nbsp;",$newphrase);$newphrase=str_replace("","<font color=red>",$newphrase);

$newphrase=str_replace("","</font>",$newphrase);

$newphrase=str_replace("","<img src=",$newphrase);

$newphrase=str_replace("",">",$newphrase);return $newphrase;
}
?>the problem is this part of the code

$newphrase = str_replace(chr(32), "&nbsp;",$newphrase);it only replace the single spaces with &nbsp;
but what about multiple spaces?
when I have 2 more spaces on the text it can't seem to replace it with &nbsp;
 
Technology news on Phys.org
I can't reproduce that problem, works fine for me:
Code:
$newphrase = "a  b";
$newphrase = str_replace(chr(32), "&nbsp;",$newphrase);
              
echo $newphrase;

a&nbsp;&nbsp;b

If you use this as HTML code then a browser will convert these &nbsp; back to spaces and then display only one. If you want to avoid that, use "&amp;nbsp;".
 
... just curious, are you aware of the strip_tags() function?
 
Sometime in the last nine'n'half years he/she may have figured it out :wink:
 
These threads get hundreds to thousands of views from search engines over the years. Replies are not just helping the original poster.
 
  • Like
Likes hmmm27
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 7 ·
Replies
7
Views
5K
  • · Replies 32 ·
2
Replies
32
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K