Php trim whitespace sa paligid ng mga gilid. Paano mag-alis ng mga puwang mula sa mga string sa PHP? Halimbawa ng paghahanap at pagpapalit ng mga puwang

Kapag nagtatrabaho sa teksto, madalas mong kailangang i-format ito. Ito ay kinakailangan para sa tamang pagpapakita at madaling mabasa. Ito ay kinakailangan kung ang gumagamit ay nagpasok ng ilang impormasyon at nagkamali: sa halip na isang puwang, siya ay nagpapahiwatig ng dalawang puwang, at naglalagay ng isang tab sa simula. Mayroong ilang mga paraan upang alisin ang mga puwang sa PHP.

Trim()

Ang Trim function ay naghahanap ng mga karagdagang character sa simula o dulo ng isang string. ito:

  • regular na espasyo;
  • tabulasyon;
  • character na line break.

Ito ay nakasulat sa form na ito:

String trim (string $str [, string $character_mask = "\t\n\r\0\x0B" ])

Ang $str ay ang string na pinoproseso, at ang $character_mask ay ang mga karagdagang character. Ang $character_mask ay isang opsyonal na katangian.

Preg_replace

Isang function para sa paghahanap at pagpapalit ng mga character gamit ang isang regular na expression.

Mixed preg_replace (mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - ang pattern na iyong hinahanap.
  2. $replacement - mga character na papalitan.
  3. $subject - ang bagay na pinoproseso.
  4. $limit - bilang ng mga kapalit na ginawa.

Ang $pattern at $replacement ay maaaring mga array. Sa kasong ito, ang pagpapalit ay ginawa alinsunod sa mga index.

Str_replace()

Maaari mong alisin ang mga puwang mula sa isang string sa PHP gamit ang str_replace() na pamamaraan. Pinapalitan nito ang lahat ng paglitaw ng string sa paghahanap ng kapalit na string.

Mixed str_replace (mixed $search , mixed $replace , mixed $subject [, int &$count ])

Ginamit bilang isang pinasimpleng preg_replace() na paraan.

  1. $search - ang halagang makikita.
  2. $replace - ang string na papalitan.
  3. $subject - ang bagay kung saan isinasagawa ang paghahanap at pagpapalit.
  4. Itinatakda ng $count ang bilang ng mga kapalit.
$bodytag = str_replace("%body%", "black", " "); // nagtatalaga ng: Hll Wrld f PHP $vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // assigns: Dapat kang kumain ng pizza, beer, at ice cream araw-araw $phrase = "Dapat kang kumain ng prutas , gulay, at hibla araw-araw."; $healthy = array("prutas", "gulay", "fiber"); $yummy = array("pizza", "beer", "ice cream"); ​​​​$ newphrase = str_replace($healthy, $yummy, $phrase); // assigns: 2 $str = str_replace("ll", "", "good golly miss molly!", $count); echo $count; ?>

Halimbawa ng paghahanap at pagpapalit ng mga puwang

Ang mga function na ito ay nalalapat sa karamihan ng mga sitwasyon, kahit na mas kumplikado.

Halimbawa, ang user ay nagpasok ng ilang data na mamaya ay ipi-print sa screen. Upang mapabuti ang pagiging madaling mabasa at pang-unawa ng teksto sa kabuuan, ang impormasyong ito ay kailangang iproseso - alisin ang mga paulit-ulit na puwang, palitan ang mga ito ng mga solong.

$text1 = "Mahabang teksto na may mga karagdagang espasyo";

Sa kasong ito, makikita mo na may dalawa at tatlong puwang sa pagitan ng mga salita. Ang pamamaraan para sa pag-alis ng mga puwang sa PHP ay ang mga sumusunod.

1. Una kailangan mong gawing hanay ng mga string ang isang string gamit ang isang function.

Sumabog(“ ”, $text1)​

Isang solong espasyo ang ginagamit bilang delimiter. Sa ganitong paraan, ang mga bahagi ng katawan na hindi hiwalay na mga elemento ng array ay maglalaman ng mas kaunting espasyo.

2. Ang resulta ay isang hanay ng mga string tulad nito:

$array = ["Long", "voluminous", "text", "with", "extra spaces"]​

3. Ang bawat elemento ay pinoproseso ng isang function:

Preg_replace("/\s+/", " ", $text1)​

Upang maghanap ng isa o higit pang mga puwang, gamitin ang regular na expression na /\s+/. Ang lahat ng nakitang tugma ay pinapalitan ng string na ‘ ‘. Ang paghahanap ay isinasagawa sa $text1 variable.

4. Bilang resulta, nakakakuha kami ng string na may tamang bilang ng mga puwang, na madaling makita ng user.

Magandang gabi, kamakailan ay hinawakan namin ng kaunti ang paksa ng mga password at ang kanilang ligtas na imbakan, ibig sabihin, pinag-aralan namin ang pag-andar ng hashing. Ngayon ay ipagpapatuloy namin ang paksa ng mga password at ang kanilang imbakan nang kaunti, at pag-aaralan namin ang mga pag-andar na maaari mong gawin alisin ang mga puwang sa simula at dulo ng isang string. At narito ang mga password at pag-alis ng mga puwang mula sa isang string, sabihin mo sa akin? Una, ang function na ito, siyempre, ay hindi partikular na nauugnay sa mga password, ngunit gumagana lamang sa mga string, at sinabi ko ang tungkol sa mga password lamang bilang application nito. Samakatuwid, maaari mo itong gamitin saanman at kailan mo gusto, batay sa iyong sitwasyon.

Para saan ito? gupitin ang mga puwang sa simula at dulo ng linya? Kung tinukoy mo ang isang password sa site kapag nagrerehistro at kahit papaano ay hindi sinasadyang pindutin ang space bar at hindi ito napansin, kung gayon ang iyong password ay bubuo, halimbawa, hindi ng apat na character, ngunit ng lima, kasama ang iyong espasyo. At hindi mo mauunawaan kung bakit hindi angkop ang password, dahil magkakaiba ang hash ng string na ito. Samakatuwid, palagi kong inirerekumenda ang pag-trim ng mga puwang sa isang linya upang maiwasan ang mga naturang nuances. Ngayon ay magpapatuloy tayo upang isaalang-alang ang isang halimbawa sa pagsasanay.

$string_pass = " 1234 " ;
$password = md5(trim ($string_pass ));
$password2 = md5($string_pass );
echo $password;
echo "
"
;
echo $password2;
?>

Lumilikha kami ng isang variable na magiging aming password, at partikular na nagpapahiwatig ng isang puwang sa simula at sa dulo ng linya. Susunod, gumawa kami ng variable kung saan maiimbak na ang na-hash na password, at ipasa ang linya trim function, na unang mag-aalis ng lahat ng hindi kinakailangang mga puwang, at pagkatapos lamang makuha namin ang na-hash na password. At sa pangalawang variable hindi namin ginagamit ang function upang alisin ang mga puwang at agad na i-hash ang string. Pagkatapos ay ipinapakita namin ang dalawang resulta sa screen ng browser at nakita namin na ganap na naiiba ang mga ito, kahit na parehong beses kaming gumamit ng parehong string. Gayunpaman, dahil sa mga puwang, ang resulta ay ganap na naiiba, kaya kailangan mong maging lubhang maingat sa bagay na ito. At isang huling bagay na dapat kong sabihin sa iyo. May dalawa pang function na nag-aalis ng mga puwang sa simula ng isang linya, o sa dulo ng isang linya, at sila ay tinatawag na ltrim At rtrim ayon sa pagkakabanggit. Samakatuwid, kung kailangan mong alisin ang mga puwang mula sa alinman sa mga gilid, gamitin ang mga ito. At sa pamamagitan nito, tinatapos ko ang artikulong ito at nais kong magtagumpay ka sa lahat ng iyong gawain.

Sa anumang wika, kapag nagtatrabaho sa mga string, isang tipikal na gawain ay alisin ang mga puwang sa simula at sa dulo ng linya. Sa PHP mayroong tatlong function para sa mga layuning ito: ltrim(), rtrim(), trim(). Ang ltrim() function ay nag-aalis ng mga puwang sa simula ng isang linya, rtrim() - sa dulo ng isang linya, trim() - sa parehong simula at dulo. Ang kawili-wili ay ang mga function na ito, bilang karagdagan sa mga puwang, ay nag-aalis din ng bagong linya, pagbabalik ng karwahe, tab, at null na mga pagkakasunud-sunod ng pagtakas ng character.

$example = "\tHi everyone\n"; var_dump(trim ($example)); var_dump(rtrim($example)); var_dump(ltrim($example));

Bilang resulta, nakukuha namin ang:

String "Hi everybody" (length=12) string " Hi everybody" (length=14) string "Hi everybody " (length=13)

Ang pinakakawili-wili ay ang mga function sa itaas ay maaari ding mag-alis ng mga character na tinukoy ng user. Upang gawin ito, ang mga function sa itaas ay kailangang pumasa bilang pangalawang argumento ng isang string na naglalaman ng mga character na tatanggalin. Halimbawa:

$example = "YHi everyone\n"; var_dump(trim ($example, "y")); var_dump(rtrim($example, " y\n")); var_dump(ltrim($example, " yH"));

Ang resulta:

String "Hi everybody " (length=13) string " yHi everybod" (length=13) string "i everybody " (length=12)