Rumah >pembangunan bahagian belakang >tutorial php >Analisis terperinci penyahserialisasian PHP tentang pelarian watak
Artikel ini membawakan anda pengetahuan yang berkaitan tentang PHP, yang terutamanya memperkenalkan isu berkaitan tentang penyingkiran aksara penyahserikatan Rentetan selepas pensirilan PHP telah diganti atau diubah suai, mengakibatkan Apabila panjang rentetan berubah, ia adalah sentiasa bersiri dahulu dan kemudian diganti dan diubah suai. Saya harap ia akan membantu semua orang.
Kajian yang disyorkan: "Tutorial Video PHP"
Intipati: Tertutup
Kategori: Lebih banyak aksara, lebih sedikit aksara
Perkara biasa:
<?php function filter($string){ $filter = '/p/i'; return preg_replace($filter,'WW',$string); } $username = 'purplet'; $age = "10"; $user = array($username,$age); var_dump(serialize($user)); echo "<pre class="brush:php;toolbar:false">"; $r = filter(serialize($user)); var_dump($r); var_dump(unserialize($r)); ?>Jadi pertimbangkan untuk membina melarikan diri watak melalui sifat bacaan panjangnya Untuk tukar 10 kepada 20, mula-mula tentukan rentetan yang akan dibina kemudian:
var_dump(serialize($user)); # 序列化 echo "<pre class="brush:php;toolbar:false">"; $r = filter(serialize($user)); # 替换后序列化 var_dump($r); var_dump(unserialize($r)); # 打印反序列化
Tentukan panjang :16 (iaitu, rentetan yang masuk memerlukan 16 aksara lagi untuk meletakkan aksara ini ke dalam atribut seterusnya) Setiap kali terdapat 1 watak lagi, jadi 16 p
diperlukan, jadi masukkan:
原字符串:";i:1;s:2:"10";} 目标子串:";i:1;s:2:"20";}
Pengurangan aksara
Larian nilai
Penapisan nilai, nilai sebelumnya memuatkan kunci dan nilai terakhir (Sehingga kurungan kiri)
<?php function filter($string){ $filter = '/pp/i'; return preg_replace($filter,'W',$string); } $username = "ppurlet" $age = "10"; $user = array($username,$age); var_dump (serialize($user)); # 序列化 echo "<pre class="brush:php;toolbar:false">"; $r = filter(serialize($user)); # 替换后序列化 var_dump ($r); var_dump (unserialize($r)); # 打印反序列 ?>
A diikuti dengan rentetan umur masuk Kira panjang pembinaan, iaitu, 13 aksara ini akan diduduki
Setiap perubahan 2 p kepada 1 w adalah bersamaan dengan melarikan diri satu bit, jadi masukkan 13*2=26 p, panjang aksara ditandakan sebagai 26, yang menjadi 13 w, dan 13 aksara seterusnya menduduki baki 13 bit
Ringkasan
Pertambahan aksarausername='pppppppppppppppppppppppppp' age=A";i:1;s:2:"20";}
Atas ialah kandungan terperinci Analisis terperinci penyahserialisasian PHP tentang pelarian watak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!