Rumah > Artikel > pembangunan bahagian belakang > Apa yang perlu dilakukan jika ruang tidak boleh dialih keluar dalam php
Penyelesaian untuk ruang PHP yang tidak boleh dialih keluar: 1. Gunakan editor heksadesimal untuk melihat bait 2. Tambahkan parameter u kepada "regex-pattern" 3. Gunakan "str_replace(' ', ' '; , $fieldname);" boleh digunakan untuk menggantikan ruang.
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Apakah yang perlu saya lakukan jika ruang tidak boleh dialih keluar dalam php?
Saya mendapat rentetan PHP dan saya perlu mengalih keluar ruang. Saya menggunakan kod berikut tetapi apabila saya echo $classname ia hanya memaparkan rentetan yang masih mengandungi ruang.
$fieldname = the_sub_field('venue_title'); $classname = str_replace(' ', '', $fieldname); echo $classname;
Gunakan editor hex untuk melihat bait, jika ruang dalam HEX bukan 20 maka ia bukan ruang "biasa". Anda boleh menukar kepada HEX menggunakan fungsi mudah dalam PHP.
Kemungkinan pendua untuk mengalih keluar ruang dalam pembolehubah dalam PHP
Cuba tambah parameter u pada corak regex kerana rentetan boleh mempunyai pengekodan UTF-8:
$classname = preg_replace('/\s+/u', '', $fieldname);
Wow. Terima kasih banyak-banyak! tolong!
Ini satu-satunya perkara yang berkesan untuk saya
Sama di sini. Rentetan dipulihkan daripada medan meta WordPress. Disimpan dalam panel pentadbir, selepas "copy-paste" dari tapak lama, menggunakan pengekodan berbeza...
Jika anda tahu bahawa ruang putih disebabkan oleh ruang putih sahaja, anda boleh menggunakan:
$classname = str_replace(' ','',$fieldname );
Tetapi jika ia mungkin disebabkan oleh ruang, anda boleh menggunakan:
$classname = preg_replace('/\s+/','',$fieldname )
Cuba gantikan h dengan s untuk mendapatkan ruang mendatar, ini akan mengekalkan baris baharu jika perlu.
Masalahnya mungkin watak itu bukan ruang, tetapi satu lagi watak ruang kosong.
Cuba
$classname = preg_replace('/\s/', '', $fieldname);
gunakan trim seperti ini
TRIM($fieldname);
EDIT:
preg_replace('/\s+/', '', $fieldname);
trim() hanya akan bermula dari awal rentetan dan penyingkiran ruang putih mengekori
'trim()' hanya dipangkas pada permulaan atau penghujung rentetan. Dalam contoh Paul, aksara ruang kosong mungkin dalam rentetan.
Masalahnya ialah medan yang ia tarik, bukan PHP yang lain. 'the_sub_field('venue_title')' mengekstrak medan daripada pemalam wordpress 'Advanced Custom Fields', tetapi fungsi ini digunakan untuk memaparkan data dan bukannya hanya mendapatkannya. Sebaliknya, saya menggunakan get_sub_field('venue_title') dan ia berfungsi. Terima kasih atas bantuan ini
Ini adalah jawapan yang betul untuk ancaman ini dan perlu dibenderakan
Boleh jadi ruang itu bukan angkasa tetapi beberapa bentuk ruang putih yang lain.
Anda mungkin mahu mencuba:
$classname = preg_replace('/\s+/', '', $fieldname);
Dari sini.
Cuba gantikan ruang mendatar dengan h, ini akan mengekalkan baris baharu jika perlu.
$fieldname ="I am 21 Years Old"; $classname = str_replace(' ', '', $fieldname); echo $classname; ?>
Ini berfungsi dengan sempurna.
Semak nilai pulangan melalui fungsi ini: the_sub_field('venue_title');
Saya rasa masalahnya ialah rentetan itu tidak dianggap sebagai rentetan. Ia memerlukan " di kedua-dua belah pihak. Bagaimanakah anda melakukan ini dalam PHP? Contohnya $fieldname="'".the_sub_field('venue_title')."'";
Gunakan "".the_sub_field('venue_title' ) '). "or" the_sub_field('venue_title') "
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika ruang tidak boleh dialih keluar dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!