


Implementing support for displaying formatted user input in PHP, php formatting_PHP tutorial
PHP implements support for displaying formatted user input, PHP formatting
You can download the file attached to this document on this page, or you can process the characters in the file download This document, available for download, describes how to securely display formatted user input. We'll discuss the dangers of unsanitized output and give a safe way to display formatted output.
No danger of filtering the output
If you just get the user's input and then display it, you might break your output page, as someone could maliciously do in their submitted input box Embed javascript script:
This is my comment.
<script language="javascript:
alert('Do something bad here!')">.
This way, Even if the user is not malicious, some of your HTML statements will be corrupted, such as a table being interrupted suddenly, or the page being displayed incompletely.
Show only unformatted text
This is the simplest solution, you just display the user-submitted information as unformatted text. Use the htmlspecialchars() function to convert all characters into HTML encoding.
For example, which ensures that no unexpected html tags output at inappropriate times.>This is a good solution if your users only care about unformatted text content. However, it would be better if you gave it some ability to format.
Formatting with Custom Markup Tags
User's own tags for formatting
You can provide special tags for users to use, for example, you can allow the use of...emphasis,...italics Display, just do a simple search and replace operation: $output = str_replace("", "<b>", $output);
$output = str_replace("", "<i>", $output );
A little better, we can allow users to type in some links. For example, the user will be allowed to enter [link="url"]...[/link], and we will convert it to <a href="">...</a> statement
At this time, We cannot use a simple find and replace, we should use regular expressions for replacement:
$output = ereg_replace('[link="([[:graph:]]+)"]', '<a href=" \1">', $output);
The execution of ereg_replace() is:
To find the string where [link="..."] appears, use [[:graph:]] means any non-empty character. Please see the related article for regular expressions.
The format_output() function in outputlib.php provides the conversion of these tags. The overall principle is:
Call htmlspecialchars() to convert HTML tags into special encodings, and will not be displayed HTML tags are filtered out,
and then a series of our custom tags are converted into corresponding HTML tags.
Please see the source code below:
<?php
function format_output($output) {
/****************************************************************************
* Takes a raw string ($output) and formats it for output using a special
* stripped down markup that is similar to HTML
****************************************************************************/
$ output = htmlspecialchars(stripslashes($output));
/* new paragraph */
$output = str_replace('[p]', '<p>', $output);
/* bold */
$output = str_replace('', '<b>', $output);
$output = str_replace('', '</b>', $output) ;
/* italics */
$output = str_replace('', '<i>', $output);
$output = str_replace('', '</i>' , $output);
/* preformatted */
$output = str_replace('[pre]', '<pre>', $output);
$output = str_replace('[ /pre]', '</pre>', $output);
/* indented blocks (blockquote) */
$output = str_replace('
', '<blockquote>', $output); <br />$output = str_replace('
', '</blockquote>', $output);
/* anchors */
$output = ereg_replace('[anchor="([[:graph:]]+)"]' , '<a name="\1"></a>', $output);
/* links, note we try to prevent javascript in links */
$output = str_replace( '[link="javascript', '[link=" javascript', $output);
$output = ereg_replace('[link="([[:graph:]]+)"]', '<a href="\1">', $output);
$output = str_replace('[/link]', '</a>', $output);
return nl2br($ output);
}
?>
Some things to note:
Remember to replace the custom tag to generate the HTML tag string by calling htmlspecialchars() function, not before this call, otherwise your hard work will be wasted after calling htmlspecialchars().
After conversion, the search HTML code will be replaced, such as the double quotation mark "will become"
nl2br() function converts the carriage return and line feed character into a
tag, also To be after htmlspecialchars().
When converting [links=""] to , you must confirm that the submitter will not insert javascript scripts. An easy way to change [link="javascript to [link= " javascript, this method will not replace, but will display the original code.
outputlib.php
Call test.php in the browser, you can see the usage of format_output()
Normal HTML tags cannot be used, replace them with the following special tags It:
- this is bold
- this is italics
- this is [link="http://www.phpbuilder.com"]a link[/link]
- this is [anchor="test"]an anchor, and a [link="#test"]link[/link] to the anchor
[p]paragraph
[pre]pre-formatted[ /pre]
交错文本
These are just a few tags, of course, you can feel free to add more tags according to your needs
Conclusion
Conclusion
This discussion is provided to safe display users The input method can be used in the following programs
Message Board
User Suggestions
System Announcement
BBS System
Detailed description: http://php.662p.com/thread-343-1-1.html
Front desk:
Backend:
$pic_data = $_FILES["myFile"]["tmp_name"];
$pic_size = $_FILES[" myFile"]["size"];
$filepic = addslashes(fread(fopen($pic_data, "rb"), $pic_size ));
Just add the statement to insert into the database, such as :"insert into pic(id,picture) values(1,$filepic)"
Display picture:
header("Content-type:image/jpeg");
Connect to database
$result =mysql_query("select * from pic where id=1");
$myrow=mysql_fetch_array($result);
echo ($myrow["picture"]);
PHP’s function for formatting numbers is number_format
I suggest you download a PHP manual, or read online manuals.
www.itlearner.com/code/php/
About its usage is as follows:
Syntax: string number_format(float number, int [decimals], string [dec_point ], string [thousands_sep]);
Return value: String
Function type: Mathematical operation
Content description
This function is used to convert floating Point parameter number format. If the parameter decimals is not added, only the integer part of the returned string will be returned. If this parameter is added, the number of decimal points specified by the parameter will be returned. The parameter dec_point represents the decimal point representation method. The default value is ".". If you need to convert to other decimal points, you can change this parameter. The parameter thousands_sep is the separator character for every three digits in the integer part. The default value is ",". The most special thing about this function is the number of parameters. There must be at least one, which is the string to be formatted; it can also have two or four parameters, but three parameters cannot be used. Please note that the numbers after the specified decimal point are discarded directly without rounding.
Usage Example
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."\ n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."\n"; // 850 017.902
?>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
