Rumah php教程 php手册 PHP对HTML编码字符串的处理

PHP对HTML编码字符串的处理

Jun 06, 2016 pm 07:55 PM
html php berurusan dengan rentetan pengekodan

今天在写一个PHP脚本访问数据库时,发现其中的中文字符串使用了HTML编码方式进行存储的(比如中文字毛对应的HTML编码为#27611;),使得在对该字段进行条件查询时不能进接使用中文进行查询,而要将其转换为编码后再进行条件匹配。 PHP中对可读性字符与HTML编

今天在写一个PHP脚本访问数据库时,发现其中的中文字符串使用了HTML编码方式进行存储的(比如中文字“毛”对应的HTML编码为“毛”),使得在对该字段进行条件查询时不能进接使用中文进行查询,而要将其转换为编码后再进行条件匹配。

        PHP中对可读性字符与HTML编码字符相互转换时需要使用到htmlentitieshtml_entity_decode函数。于是写出如下查询语句,

PHP对HTML编码字符串的处理    $sql = "select id,depart_name,first_name,last_name,local_name,extension,mobile,title ";
PHP对HTML编码字符串的处理    
$sql.= "from pb_extension e, pb_department d  ";
PHP对HTML编码字符串的处理    
$sql.= "where e.depart_id = d.depart_id  ";
PHP对HTML编码字符串的处理    
$sql.= "  and d.plant='".$plant."' ";
PHP对HTML编码字符串的处理    
$sql.= " and (first_name like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= " or last_name like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= " or local_name like '%".htmlentities($HTTP_POST_VARS["q"])."%'";
PHP对HTML编码字符串的处理    
$sql.= " or extension like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= " or mobile like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= " or depart_name like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= " or title like '%".$HTTP_POST_VARS["q"]."%'";
PHP对HTML编码字符串的处理    
$sql.= "";

并执行。可是怪是却发生了,此语句在SQL Analyzer中可以正确执行并查询出结果,而在IE中很执行这段脚本却提示查询结果为零,这是为什么呢?

        经过仔细检查这段SQL,并查看在IE中的源码,发现了问题的根结所在。查询值经htmlentities函数后转换为HTML编码,此编码中存在着特殊字符&(如第一段中的举例),在IE中这个字符是另有含义的。在IE中一般都是使用“&”来表示这个符号的,导致在IE中看到输出的SQL语句和真正执行的语句是不一样的。

        要解决这个问题就要想个办法不让IE使用“&”表示“&”符号。经过一翻查询,发现使用如下代码可以解决这个问题。

PHP对HTML编码字符串的处理php
PHP对HTML编码字符串的处理  
$trans = get_html_translation_table(HTML_ENTITIES);
PHP对HTML编码字符串的处理  
$trans = array_flip($trans);
PHP对HTML编码字符串的处理  
$encoded = "Hallo &  & Krämer";
PHP对HTML编码字符串的处理  
$original = strtr($encoded, $trans);
PHP对HTML编码字符串的处理  
echo $original;
PHP对HTML编码字符串的处理
?>

执行这段代码,输出的$original变量值为“Hallo & & Krämer”,这正是我想要的结果。

        以上是我在工作中遇到的问题及解决方法,特将其写在我的Blog上,与那些遇到和我相似问题的朋友们一起分享。



 
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Muzium Dua Point: Semua Pameran dan Di Mana Mencari Mereka
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Susun Atur Jadual HTML Susun Atur Jadual HTML Sep 04, 2024 pm 04:54 PM

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

See all articles