Home Backend Development PHP Tutorial Method to detect and delete page BOM (UTF-8) blank lines_PHP tutorial

Method to detect and delete page BOM (UTF-8) blank lines_PHP tutorial

Jul 13, 2016 am 10:49 AM
bom utf-8 and delete Discover exist us method Detection blank blank line page

We often find that there are some extra blank lines in the page for no reason, but we see it in the editor. We know that this is caused by BOM (UTF-8). Let me share with you some of them. Methods for detecting and deleting BOM (UTF-8).

The picture below is the HTML code seen with firebug after the situation mentioned above occurs.

Figure 1

There is an extra blank line inexplicably, but when we look at the source code, it is not there.


My most common method is to use php to replace

BOM: Universal code file signature BOM (Byte Order Mark, U+FEFF)

The content of the BOM can indicate which encoding UNICODE is, but the received file needs to be disassembled and written into the DB. Seeing the BOM feels a bit ooxx.


In utf8_encode, I saw two programs that can be used to test writing/removing BOM.

Add BOM before the written file content

The code is as follows Copy code
 代码如下 复制代码

function writeUTF8File($filename,$content)
{
$f = fopen($filename, 'w');
fwrite($f, pack("CCC", 0xef,0xbb,0xbf));
fwrite($f,$content);
fclose($f);
}
?>

function writeUTF8File($filename,$content)

{
代码如下 复制代码

function removeBOM($str = '')
{
if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {
$str = substr($str, 3);
}
return $str;
}
?>

$f = fopen($filename, 'w');

fwrite($f, pack("CCC", 0xef,0xbb,0xbf));

fwrite($f,$content);

fclose($f);
}
?>

 代码如下 复制代码

function isUTF8($string)
{
    return (utf8_encode(utf8_decode($string)) == $string);
}

Remove BOM function
The code is as follows Copy code
function removeBOM($str = '')<🎜> {<🎜> if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) {<🎜>          $str = substr($str, 3);<🎜> }<🎜> Return $str;<🎜> }<🎜> ?>
Thus, the above BOM = pack("CCC",0xef,0xbb,0xbf), so the way to remove BOM can be written with the above removeBOM function or one of the following: ■str_replace("锘�", '', $bom_content); ■preg_replace("/^锘�/", '', $bom_content); Also see the function to determine whether this string is UTF-8:
The code is as follows Copy code
function isUTF8($string) { Return (utf8_encode(utf8_decode($string)) == $string); }

Use shell in linux system to solve the problem

Before discussing in detail the detection and deletion of BOM in UTF-8 encoding, you might as well warm up with an example:

 代码如下 复制代码
shell> curl -s http://www.bKjia.c0m/ | head -1 | sed -n l
锘� //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> $

As shown above, the first three bytes are 357, 273, and 277 respectively, which is the octal BOM.

 代码如下 复制代码
shell> curl -s http://www.111cn.Net/ | head -1 | hexdump -C
00000000  ef bb bf 3c 21 44 4f 43  54 59 50 45 20 68 74 6d  |... 00000010 6c 20 50 55 42 4c 49 43 20 22 2d 2f 2f 57 33 43 |l PUBLIC "-//W3C|
00000020 2f 2f 44 54 44 20 58 48 54 4d 4c 20 31 2e 30 20 |//DTD XHTML 1.0 |
00000030 54 72 61 6e 73 69 74 69 6f 6e 61 6c 2f 2f 45 4e |Transitional//EN|
00000040 22 20 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 |" "http://www.w3|
00000050 2e 6f 72 67 2f 54 52 2f 78 68 74 6d 6c 31 2f 44 |.org/TR/xhtml1/D|
00000060 54 44 2f 78 68 74 6d 6c 31 2d 74 72 61 6e 73 69 |TD/xhtml1-transi|
00000070 74 69 6f 6e 61 6c 2e 64 74 64 22 3e 0d 0a |tional.dtd">..|

As shown above, the first three bytes are EF, BB, and BF, which is the hexadecimal BOM. Note: The page of a third-party website is used, and there is no guarantee that the example will always be available. When actually doing project development, you may face hundreds or thousands of text files. If a few files are mixed with BOM, it will be difficult to detect. If there is no UTF-8 text file with BOM, you can use vi to make up a few. The relevant commands are as follows:

Set UTF-8 encoding:

 代码如下 复制代码
:set fileencoding=utf-8

Add BOM:

 代码如下 复制代码
:set bomb

Delete BOM:

 代码如下 复制代码
:set nobomb

Query BOM:

 代码如下 复制代码
:set bomb?

How to detect BOM in UTF-8 encoding?

The code is as follows Copy code
 代码如下 复制代码

shell> grep -r -I -l $'^锘�' /path如何删除UTF-8编码中的BOM呢?

shell> grep -r -I -l $'^锘�' /path | xargs sed -i 's/^锘�//;q'

shell> grep -r -I -l $'^锘�' /path How to delete the BOM in UTF-8 encoding?

shell> grep -r -I -l $'^锘�' /path | xargs sed -i 's/^锘�//;q'
 代码如下 复制代码

#!/bin/bash

REPOS=""
TXN=""

SVNLOOK=/usr/bin/svnlook

for FILE in $($SVNLOOK changed -t "$TXN" "$REPOS" | awk '/^[AU]/ {print $NF}'); do
    if $SVNLOOK cat -t "$TXN" "$REPOS" "$FILE" | grep -q $'^锘�'; then
        echo "Byte Order Mark be found in $FILE" 1>&2
        exit 1
    fi
done

Recommendation: If you use SVN, you can add relevant code to the pre-commit hook to eliminate BOM.

The code is as follows Copy code

#!/bin/bash REPOS="$1"

TXN="$2"


SVNLOOK=/usr/bin/svnlook

for FILE in $($SVNLOOK changed -t "$TXN" "$REPOS" | awk '/^[AU]/ {print $NF}'); do If $SVNLOOK cat -t "$TXN" "$REPOS" "$FILE" | grep -q $'^锘�'; then
echo "Byte Order Mark be found in $FILE" 1>&2
exit 1
fi

done

This article uses a lot of shell commands

Method three, use the ultraedit editor to modify the document directly Just save the document with blank lines in a format without BOM. The picture below is the encoding format when ultraedit saves the document: Figure 2 Choose UTF8 inside - no BOM, everything is solved
http://www.bkjia.com/PHPjc/632732.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632732.htmlTechArticleWe often find that there are some blank lines in the page for no reason, but we see them again in the editor. , we know that this is caused by BOM (UTF-8), the editor will share with you some of the following...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to write a novel in the Tomato Free Novel app. Share the tutorial on how to write a novel in Tomato Novel. How to write a novel in the Tomato Free Novel app. Share the tutorial on how to write a novel in Tomato Novel. Mar 28, 2024 pm 12:50 PM

Tomato Novel is a very popular novel reading software. We often have new novels and comics to read in Tomato Novel. Every novel and comic is very interesting. Many friends also want to write novels. Earn pocket money and edit the content of the novel you want to write into text. So how do we write the novel in it? My friends don’t know, so let’s go to this site together. Let’s take some time to look at an introduction to how to write a novel. Share the Tomato novel tutorial on how to write a novel. 1. First open the Tomato free novel app on your mobile phone and click on Personal Center - Writer Center. 2. Jump to the Tomato Writer Assistant page - click on Create a new book at the end of the novel.

How to recover deleted contacts on WeChat (simple tutorial tells you how to recover deleted contacts) How to recover deleted contacts on WeChat (simple tutorial tells you how to recover deleted contacts) May 01, 2024 pm 12:01 PM

Unfortunately, people often delete certain contacts accidentally for some reasons. WeChat is a widely used social software. To help users solve this problem, this article will introduce how to retrieve deleted contacts in a simple way. 1. Understand the WeChat contact deletion mechanism. This provides us with the possibility to retrieve deleted contacts. The contact deletion mechanism in WeChat removes them from the address book, but does not delete them completely. 2. Use WeChat’s built-in “Contact Book Recovery” function. WeChat provides “Contact Book Recovery” to save time and energy. Users can quickly retrieve previously deleted contacts through this function. 3. Enter the WeChat settings page and click the lower right corner, open the WeChat application "Me" and click the settings icon in the upper right corner to enter the settings page.

Is it true that you can be blocked and deleted on WeChat and permanently unable to be added? Is it true that you can be blocked and deleted on WeChat and permanently unable to be added? Apr 08, 2024 am 11:41 AM

1. First of all, it is false to block and delete someone permanently and not add them permanently. If you want to add the other party after you have blocked them and deleted them, you only need the other party's consent. 2. If a user blocks someone, the other party will not be able to send messages to the user, view the user's circle of friends, or make calls with the user. 3. Blocking does not mean deleting the other party from the user's WeChat contact list. 4. If the user deletes the other party from the user's WeChat contact list after blocking them, there is no way to recover after deletion. 5. If the user wants to add the other party as a friend again, the other party needs to agree and add the user again.

How to set font size on mobile phone (easily adjust font size on mobile phone) How to set font size on mobile phone (easily adjust font size on mobile phone) May 07, 2024 pm 03:34 PM

Setting font size has become an important personalization requirement as mobile phones become an important tool in people's daily lives. In order to meet the needs of different users, this article will introduce how to improve the mobile phone use experience and adjust the font size of the mobile phone through simple operations. Why do you need to adjust the font size of your mobile phone - Adjusting the font size can make the text clearer and easier to read - Suitable for the reading needs of users of different ages - Convenient for users with poor vision to use the font size setting function of the mobile phone system - How to enter the system settings interface - In Find and enter the "Display" option in the settings interface - find the "Font Size" option and adjust it. Adjust the font size with a third-party application - download and install an application that supports font size adjustment - open the application and enter the relevant settings interface - according to the individual

How to completely delete TikTok chat history How to completely delete TikTok chat history May 07, 2024 am 11:14 AM

1. Open the Douyin app, click [Message] at the bottom of the interface, and click the chat conversation entry that needs to be deleted. 2. Long press any chat record, click [Multiple Select], and check the chat records you want to delete. 3. Click the [Delete] button in the lower right corner and select [Confirm deletion] in the pop-up window to permanently delete these records.

The secret of hatching mobile dragon eggs is revealed (step by step to teach you how to successfully hatch mobile dragon eggs) The secret of hatching mobile dragon eggs is revealed (step by step to teach you how to successfully hatch mobile dragon eggs) May 04, 2024 pm 06:01 PM

Mobile games have become an integral part of people's lives with the development of technology. It has attracted the attention of many players with its cute dragon egg image and interesting hatching process, and one of the games that has attracted much attention is the mobile version of Dragon Egg. To help players better cultivate and grow their own dragons in the game, this article will introduce to you how to hatch dragon eggs in the mobile version. 1. Choose the appropriate type of dragon egg. Players need to carefully choose the type of dragon egg that they like and suit themselves, based on the different types of dragon egg attributes and abilities provided in the game. 2. Upgrade the level of the incubation machine. Players need to improve the level of the incubation machine by completing tasks and collecting props. The level of the incubation machine determines the hatching speed and hatching success rate. 3. Collect the resources required for hatching. Players need to be in the game

How to deal with blanks when playing PPT slides How to deal with blanks when playing PPT slides Mar 26, 2024 pm 07:51 PM

1. Open the PPT file you created and select the second slide. 2. On the second slide, select one of the pictures, and then select [Animation] to add any animation effect. 3. In the start column of the animation bar, change [While Standalone] to [After Previous Animation], and you will see that the picture animation label [1] will change to [0]. Do the same for subsequent slides, and you can see the effect by playing the slide at the end.

Quickly master: How to open two WeChat accounts on Huawei mobile phones revealed! Quickly master: How to open two WeChat accounts on Huawei mobile phones revealed! Mar 23, 2024 am 10:42 AM

In today's society, mobile phones have become an indispensable part of our lives. As an important tool for our daily communication, work, and life, WeChat is often used. However, it may be necessary to separate two WeChat accounts when handling different transactions, which requires the mobile phone to support logging in to two WeChat accounts at the same time. As a well-known domestic brand, Huawei mobile phones are used by many people. So what is the method to open two WeChat accounts on Huawei mobile phones? Let’s reveal the secret of this method. First of all, you need to use two WeChat accounts at the same time on your Huawei mobile phone. The easiest way is to

See all articles