ホームページ php教程 php手册 检测与删除页面BOM(UTF-8)空行方法

检测与删除页面BOM(UTF-8)空行方法

Jun 13, 2016 am 09:51 AM
bom utf-8 そして 消去 発見する 存在する 私たち 方法 検出 空白 空行 ページ

我们经常会在发现页面中无故多了一些空白行了,但在编辑器中又看到到,这个我们知道是由BOM(UTF-8)导致的,下面小编来给大家分享几种关于BOM(UTF-8)检测与删除方法。

下图是出现前面说的情况后用firebug看到的HTML代码。

图1

里面莫名其妙多出了一个空白行,而我们看源代码里面却没有。


我最常用的办法,利用php替换

BOM: 万国码档案签名 BOM (Byte Order Mark, U+FEFF)

BOM 的内容可以表示 UNICODE 是哪种编码, 但是在接收到的档案, 要拆解后写入 DB, 看到 BOM 就觉得有点 ooxx.


在 utf8_encode 看到两段程式可以来测试 写入/移除 BOM.

将写入的档案内容前加 BOM

 代码如下 复制代码

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

移除 BOM function

 代码如下 复制代码

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

由此上述 BOM = pack("CCC",0xef,0xbb,0xbf), 所以移除 BOM 的写法可用上面的 removeBOM function 或 下述其一:

■str_replace("锘�", '', $bom_content);
■preg_replace("/^锘�/", '', $bom_content);
另外看到 判断此字串是不是 UTF-8 的 function:

 代码如下 复制代码

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

linux系统中使用shell来解决

在详细讨论UTF-8编码中BOM的检测与删除问题前,不妨先通过一个例子热热身:

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

如上所示,前三个字节分别是357、273、277,这就是八进制的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">..|

如上所示,前三个字节分别是EF、BB、BF,这就是十六进制的BOM。 注:用到了第三方网站的页面,不能保证例子始终可用。 实际做项目开发时,可能会面对成百上千个文本文件,如果有几个文件混入了BOM,那么很难察觉,如果没有带BOM的UTF-8文本文件,可以用vi杜撰几个,相关命令如下:

设置UTF-8编码:

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

添加BOM:

 代码如下 复制代码
:set bomb

删除BOM:

 代码如下 复制代码
:set nobomb

查询BOM:

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

如何检测UTF-8编码中的BOM呢?

 代码如下 复制代码

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

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

推荐:如果你使用SVN的话,可以在pre-commit钩子里加上相关代码用以杜绝BOM。

 代码如下 复制代码

#!/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

本文用到了很多shell命令

方法三,利用ultraedit编辑器直接修改文档

把出现空行的文档另存没没有BOM的格式就行了。

下图是ultraedit保存文档时的编码格式:

图2

选择里面的UTF8-无BOM,一切解决

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 トマト無料小説アプリで小説を書く方法. トマトノベルで小説を書く方法に関するチュートリアルを共有します。 Mar 28, 2024 pm 12:50 PM

トマト ノベルは非常に人気のある小説閲覧ソフトウェアです。トマト ノベルでは、新しい小説や漫画を読むことができます。どの小説も漫画もとても面白いです。小説を書きたい友達もたくさんいます。お小遣いを稼いで、小説の内容を編集することもできます。 「テキストに文章を書きたいです。それで、小説はどうやって書くのですか?友達は知らないので、一緒にこのサイトに行きましょう。小説の書き方の入門を少し見てみましょう。」 Tomato Novels を使用して小説を書く方法に関するチュートリアルを共有します。 1. まず、携帯電話で Tomato Free Novels アプリを開き、パーソナル センター - ライター センターをクリックします。 2. Tomato Writer Assistant ページに移動し、次の場所で [新しい本の作成] をクリックします。小説の終わり

WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) WeChat で削除された連絡先を回復する方法 (簡単なチュートリアルでは、削除された連絡先を回復する方法について説明します) May 01, 2024 pm 12:01 PM

残念ながら、WeChat は広く使用されているソーシャル ソフトウェアであり、何らかの理由で特定の連絡先を誤って削除してしまうことがよくあります。ユーザーがこの問題を解決できるように、この記事では、削除された連絡先を簡単な方法で取得する方法を紹介します。 1. WeChat の連絡先削除メカニズムを理解します。これにより、削除された連絡先を取得できるようになります。WeChat の連絡先削除メカニズムでは、連絡先がアドレス帳から削除されますが、完全には削除されません。 2. WeChat の組み込みの「連絡先帳復元」機能を使用します。WeChat には、この機能を通じて以前に削除した連絡先をすばやく復元できる「連絡先帳復元」機能が用意されています。 3. WeChat 設定ページに入り、右下隅をクリックし、WeChat アプリケーション「Me」を開き、右上隅にある設定アイコンをクリックして設定ページに入ります。

WeChat でブロックされたり削除されたり、永久に追加できなくなったりする可能性があるというのは本当ですか? WeChat でブロックされたり削除されたり、永久に追加できなくなったりする可能性があるというのは本当ですか? Apr 08, 2024 am 11:41 AM

1. まず、相手を永久にブロックして削除して永久に追加しないのは間違いで、ブロックして削除した後に相手を追加したい場合は、相手の同意だけが必要です。 2. ユーザーが誰かをブロックすると、相手はユーザーにメッセージを送信したり、ユーザーの友達サークルを表示したり、ユーザーと通話したりすることができなくなります。 3. ブロックとは、ユーザーの WeChat 連絡先リストから相手を削除することを意味するものではありません。 4. ユーザーが相手をブロックした後、ユーザーの WeChat 連絡先リストから相手を削除した場合、削除後に回復する方法はありません。 5. ユーザーが相手を再度友達として追加したい場合は、相手が同意してユーザーを再度追加する必要があります。

TikTokのチャット履歴を完全に削除する方法 TikTokのチャット履歴を完全に削除する方法 May 07, 2024 am 11:14 AM

1. Douyin アプリを開き、インターフェイスの下部にある [メッセージ] をクリックし、削除する必要があるチャット会話エントリをクリックします。 2. 任意のチャット記録を長押しし、[複数選択]をクリックし、削除したいチャット記録にチェックを入れます。 3. 右下隅の [削除] ボタンをクリックし、ポップアップ ウィンドウで [削除の確認] を選択して、これらのレコードを完全に削除します。

モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) モバイルドラゴンの卵を孵化させる秘密が明らかに(モバイルドラゴンの卵をうまく孵化させる方法を段階的に教えます) May 04, 2024 pm 06:01 PM

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! すぐにマスター: Huawei 携帯電話で 2 つの WeChat アカウントを開く方法が明らかに! Mar 23, 2024 am 10:42 AM

今日の社会において、携帯電話は私たちの生活に欠かせないものとなっています。私たちの日常のコミュニケーション、仕事、生活のための重要なツールとして、WeChat はよく使用されます。ただし、異なるトランザクションを処理する場合は 2 つの WeChat アカウントを分離する必要がある場合があり、そのためには携帯電話が 2 つの WeChat アカウントへの同時ログインをサポートする必要があります。有名な国内ブランドとして、ファーウェイの携帯電話は多くの人に使用されていますが、ファーウェイの携帯電話で 2 つの WeChat アカウントを開設する方法は何でしょうか?このメソッドの秘密を明らかにしましょう。まず、Huawei 携帯電話で 2 つの WeChat アカウントを同時に使用する必要があります。最も簡単な方法は次のとおりです。

PPT スライドを再生するときに空白が発生した場合の対処方法 PPT スライドを再生するときに空白が発生した場合の対処方法 Mar 26, 2024 pm 07:51 PM

1. 作成した PPT ファイルを開き、2 番目のスライドを選択します。 2. 2 番目のスライドで、いずれかの写真を選択し、[アニメーション] を選択してアニメーション効果を追加します。 3. アニメーションバーの開始列で、[スタンドアロン中] を [前のアニメーションの後] に変更すると、ピクチャアニメーションのラベル [1] が [0] に変わることがわかります。後続のスライドでも同じことを行い、最後にスライドを再生すると効果を確認できます。

携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) 携帯電話の文字サイズの設定方法(携帯電話の文字サイズを簡単に調整できます) May 07, 2024 pm 03:34 PM

携帯電話が人々の日常生活において重要なツールになるにつれて、フォント サイズの設定は重要なパーソナライゼーション要件になりました。さまざまなユーザーのニーズを満たすために、この記事では、簡単な操作で携帯電話の使用体験を向上させ、携帯電話のフォントサイズを調整する方法を紹介します。携帯電話のフォント サイズを調整する必要があるのはなぜですか - フォント サイズを調整すると、テキストがより鮮明で読みやすくなります - さまざまな年齢のユーザーの読書ニーズに適しています - フォント サイズを使用すると、視力の悪いユーザーにとって便利です携帯電話システムの設定機能 - システム設定インターフェイスに入る方法 - 設定インターフェイスで「表示」オプションを見つけて入力します。 - 「フォント サイズ」オプションを見つけて、サードパーティでフォント サイズを調整します。アプリケーション - フォント サイズの調整をサポートするアプリケーションをダウンロードしてインストールします - アプリケーションを開いて、関連する設定インターフェイスに入ります - 個人に応じて

See all articles