Rumah  >  Soal Jawab  >  teks badan

Alih keluar aksara berikut ½ ´ ¤ £ € ¨ menggunakan php tetapi tanpa menggunakan fungsi preg_replace atau str_replace

Saya ada masalah nak selesaikan. Saya tidak boleh menggunakan preg_replace 或 str_replace kerana kami tidak boleh menentukan aksara kerana data datang daripada input borang.

Saya cuba mengalih keluar aksara ini daripada ini $name "Test ½ ´ ¤ £ € ¨" ½ ´ ¤ £ € ¨;

Begitu juga untuk bahagian hadapan, watak tidak boleh ditentukan terlebih dahulu

Saya telah mencuba kaedah di bawah tetapi tiada satu pun yang berkesan

$name = "Test ½ ´ ¤ £ € ¨";

mb_convert_encoding(strval($name);

utf8_decode(strval($name);

Keluaran ideal saya ialah Ujian

P粉163465905P粉163465905426 hari yang lalu525

membalas semua(1)saya akan balas

  • P粉731861241

    P粉7318612412023-09-13 15:38:26

    Anda sentiasa boleh mengulangi aksara dalam rentetan. Tetapi berhati-hati: PHP tidak menyokong Unicode secara asli.

    $remove = array( '½', '´', '¤', '£', '€' );
    $result = '';
    $name = "Test ½ ´ ¤ £ € ¨";
    
    $count = mb_strlen($name, 'UTF-8');
    for( $i = 0; $i < $count; $i++ ){
        $char = mb_substr( $name, $i, 1, 'UTF-8' );
        if( ! in_array( $char, $remove ) {
          $result .= $char;
        }
    }
    

    Ini bergelung melalui aksara berbilang bait dalam rentetan yang dibekalkan pengguna dan membolehkan anda melakukan apa sahaja yang anda mahu dengannya. Contoh membina rentetan yang terhasil, meninggalkan aksara yang anda nyatakan. (Tidak debug, maaf.)

    (IMHO, saya rasa alasan anda untuk mengelakkan fungsi penggantian rentetan mungkin salah. Faedah menggunakan kelas aksara regex ialah ini: pengarang regex telah menyelesaikan banyak kes kelebihan pelik di mana Unicode menyertakan Banyak situasi yang membuat orang tidak senang)

    .

    balas
    0
  • Batalbalas