PHP字符串替换次数控制方法
最近做的一个项目里面涉及到批量替换关键字的问题,仅替换而言没什么可说的,但这里需要的是每个关键字仅需要替换一次就可以了。查阅了php相关函数文档,发现php本身是没有函数实现这个功能的,所以不得不自己解决了。经过一番折腾总结了几种可行方法,小记一下!
(1)使用 preg_replace 函数实现这个功能,因为 preg_replace 这个函数本身是可以实现控制替换次数的,所以一开始就想到他了,具体实现方法如下://可以实现替换次数的控制,不仅限于只替换一次,比如$limit为2的时候表示一个词出现很多次的时候仅替换2次,-1表示全部替换。
$search 和 $replace 都可以是字符串或者数组,但必须对应
function str_replace_limit($search,$replace,$content,$limit=-1){<br /> if(is_array($search)){<br /> foreach ($search as $k=>$v){<br /> $search[$k]='`'.preg_quote($search[$k],'`').'`';<br /> }<br /> }else{<br /> $search='`'.preg_quote($search,'`').'`';<br /> }<br /> //把图片描述去掉<br /> $content=preg_replace("/alt=([^ >]+)/is",'',$content);<br /> return preg_replace($search,$replace,$content,$limit);<br /><p>}
(2)使用 substr_replace 函数来实现,不过这里仅能实现仅一次替换
//首先找到关键字所在位置,然后使用 substr_replace(系统函数)进行替换操作
function str_replace_once($search,$replace,$content){<br /> //把图片描述去掉<br /> $content=preg_replace("/alt=([^ >]+)/is",'',$content);<br /> $pos=strpos($content,$search);<br /> if($pos===false){<br /> return $haystack;<br /> }<br /> return substr_replace($content,$replace,$pos,strlen($search));<br />}

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dalam PHP, anda boleh menggunakan fungsi ord() untuk menukar aksara kepada kod ascii. Fungsi ini boleh mengembalikan nilai ASCII bagi satu aksara atau aksara pertama dalam rentetan Nilai ASCII yang dikembalikan akan dipaparkan dalam bentuk integer sintaks "ord (rentetan)", parameter "rentetan" tidak boleh ditinggalkan, ia adalah rentetan (atau aksara tunggal) dari mana nilai ASCII akan diperolehi.

Terdapat dua cara untuk menggantikan aksara tertentu dengan aksara null dalam rentetan PHP: 1. Gunakan fungsi str_replace() untuk menggantikan aksara yang ditentukan dengan aksara null Anda hanya perlu menetapkan parameter pertama kepada aksara yang ditentukan dan parameter kedua kepada aksara nol. preg_replace('/specified character/', "",$str)".

Dua kaedah pengalihan keluar: 1. Gunakan preg_replace() untuk melaksanakan ungkapan biasa untuk mencari semua huruf besar dan menggantikannya dengan aksara nol Sintaksnya ialah "preg_replace('/[A-Z]/','',$str)". 2. Gunakan preg_filter() untuk melaksanakan ungkapan biasa untuk mencari semua huruf besar dan menggantikannya dengan aksara kosong Sintaksnya ialah "preg_filter('/[A-Z]/','',$str)".

Dua kaedah: 1. Gunakan preg_match_all() untuk menapis rentetan dengan keteraturan, sintaksnya ialah "preg_match_all("/[\x{4e00}-\x{9fff}] /u","$str",$arr);" ; 2. Gunakan preg_replace() dengan rentetan carian biasa untuk mencari huruf bukan Cina dalam rentetan dan menggantikannya dengan aksara kosong Sintaksnya ialah "preg_replace("/[^\x{4E00}-\x{9FFF} ] /u",' ',$str)".

PHP ialah bahasa pengaturcaraan bertaip yang sering digunakan untuk membangunkan aplikasi web. Semasa pembangunan web, anda mungkin perlu melakukan pelbagai operasi pada rentetan, seperti mengalih keluar aksara tertentu daripada rentetan, mengekalkan nombor atau huruf dalam rentetan, dsb. Dalam artikel ini, kami akan memberi tumpuan kepada cara mengalih keluar aksara tertentu di sebelah kiri atau kanan rentetan dalam PHP.

PHP ialah bahasa pengaturcaraan yang sangat popular dan salah satu alat pilihan untuk membina laman web dinamik. Dalam pembangunan PHP, kita selalunya perlu mengendalikan rentetan, dan satu keperluan biasa ialah mengalih keluar petikan berganda daripada rentetan. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah untuk mengalih keluar petikan berganda daripada rentetan PHP.

Terdapat dua jenis pembatas rentetan PHP: 1. Pembatas Heredoc Selepas pengendali "<<<", pengecam mesti disediakan, diikuti dengan baris baharu, diikuti oleh rentetan itu sendiri, dan akhirnya pengecam yang ditakrifkan sebelum ini mesti digunakan. sebagai tanda tamat. 2. Pembatas Nowdoc Selepas pengendali "<<<", pengecam yang disertakan dalam petikan tunggal mesti disediakan, diikuti dengan baris baharu, diikuti dengan rentetan itu sendiri, dan akhirnya pengecam yang ditakrifkan sebelum ini mesti digunakan sebagai tanda akhir.

3 kaedah penukaran: 1. Gunakan fungsi dechex() untuk menukar nombor perpuluhan kepada rentetan heksadesimal Sintaksnya ialah "dechex (nilai data yang ditentukan);". 2. Gunakan fungsi base_convert() untuk menukar sebarang nilai asas kepada rentetan perenambelasan Sintaks ialah "base_convert(nilai data, asas asal, 16);". 3. Gunakan fungsi bin2hex() untuk menukar rentetan aksara ASCII kepada rentetan perenambelasan, dengan sintaks "bin2hex (nilai data)".
