Php ondoa nafasi zinazoongoza na zinazofuata. Jinsi ya kuondoa nafasi kutoka kwa kamba katika PHP? Mfano wa kutafuta na kubadilisha nafasi

Unapofanya kazi na maandishi, mara nyingi unapaswa kuitengeneza. Hii ni muhimu kwa onyesho sahihi na usomaji rahisi. Hii ni muhimu ikiwa mtumiaji huingiza habari fulani na kufanya makosa: badala ya nafasi moja, anaonyesha nafasi mbili, na huweka tabo mwanzoni. Kuna njia kadhaa za kuondoa nafasi katika PHP.

Punguza ()

Chaguo za Kupunguza hutafuta herufi za ziada mwanzoni au mwisho wa mfuatano. Hii:

  • nafasi ya kawaida;
  • tabulation;
  • tabia ya kuvunja mstari.

Imeandikwa katika fomu hii:

Kupunguza kamba (kamba $str [, kamba $character_mask = "\t\n\r\0\x0B" ])

$str ni mfuatano unaochakatwa, na $character_mask ndio herufi za ziada. $character_mask ni sifa ya hiari.

Preg_replace

Chaguo la kukokotoa la kutafuta na kubadilisha herufi kwa kutumia usemi wa kawaida.

Preg_replace mchanganyiko (mchanganyiko $pattern , mchanganyiko $replacement , mchanganyiko $subject [, int $limit = -1 [, int &$count ]])

  1. $pattern - muundo unaotafuta.
  2. $replacement - herufi za kuchukua nafasi.
  3. $subject - kitu kinachakatwa.
  4. $limit - idadi ya uingizwaji uliofanywa.

$pattern na $replacement inaweza kuwa safu. Katika kesi hii, uingizwaji unafanywa kwa mujibu wa indexes.

Str_replace()

Unaweza kuondoa nafasi kutoka kwa kamba katika PHP kwa kutumia str_replace() njia. Inabadilisha matukio yote ya kamba ya utafutaji na kamba ya uingizwaji.

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

Inatumika kama njia iliyorahisishwa ya preg_replace().

  1. $search - thamani inayopatikana.
  2. $replace - kamba ya kubadilishwa.
  3. $subject - kitu ambacho utafutaji na ubadilishaji unafanywa.
  4. $count huweka idadi ya uingizwaji.
$bodytag = str_replace("%body%", "nyeusi", " "); // inapeana: Hll Wrld f PHP $vowels = safu("a", "e", "i", "o", "u", "A", "E", "I", "O ", "U"); $onlyconsonants = str_replace($vowels, "", "Hello World of PHP"); // inapeana: Unapaswa kula pizza, bia, na aiskrimu kila siku $phrase = "Unapaswa kula matunda , mboga, na nyuzi kila siku."; $healthy = safu("matunda", "mboga", "nyuzi"); $yummy = safu("pizza", "bia", "ice cream");$ newphrase = str_replace($afya, $ kitamu, $phrase); // inapeana: 2 $str = str_replace("ll", "", "golly golly miss molly!", $count); echo $count; ?>

Mfano wa kutafuta na kubadilisha nafasi

Vipengele hivi hutumika katika hali nyingi, hata zile ngumu zaidi.

Kwa mfano, mtumiaji ameingiza baadhi ya data ambayo baadaye itachapishwa kwenye skrini. Ili kuboresha usomaji na mtazamo wa maandishi kwa ujumla, habari hii inahitaji kusindika - ondoa nafasi zilizorudiwa, zibadilishe na moja.

$text1 = "Nakala ndefu yenye nafasi za ziada";

Katika kesi hii, unaweza kuona kwamba kuna nafasi mbili na tatu kati ya maneno. Utaratibu wa kuondoa nafasi katika PHP ni kama ifuatavyo.

1. Kwanza unahitaji kugeuza kamba kwenye safu ya kamba kwa kutumia kazi.

Mlipuko(“ ”, $text1)).

Nafasi moja hutumiwa kama kikomo. Kwa njia hii, sehemu za mwili ambazo si vipengele tofauti vya safu zitakuwa na nafasi moja ndogo.

2. Matokeo yake ni safu ya safu kama hii:

$array = ["Long", "voluminous", "text", "pamoja na", "nafasi za ziada"]​

3. Kila kipengele kinachakatwa na chaguo za kukokotoa:

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

Ili kutafuta nafasi moja au zaidi, tumia usemi wa kawaida /\s+/. Mechi zote zinazopatikana zinabadilishwa na kamba ‘’. Utafutaji unafanywa katika kigezo cha $text1.

4. Matokeo yake, tunapata kamba na idadi sahihi ya nafasi, ambayo inaonekana kwa urahisi na mtumiaji.

Jioni njema, hivi karibuni tuligusa kidogo juu ya mada ya nywila na uhifadhi wao salama, yaani, tulijifunza kazi ya hashing. Leo tutaendelea mada ya nywila na uhifadhi wao kidogo, na tutajifunza kazi ambazo unaweza ondoa nafasi kutoka mwanzo na mwisho wa kamba. Na hapa ni nywila na kuondoa nafasi kutoka kwa kamba, unaniambia? Kwanza, kazi hii, kwa kweli, haihusiani haswa na nywila, lakini inafanya kazi na kamba tu, na nilisema juu ya nywila kama matumizi yake. Kwa hiyo, unaweza kuitumia popote na wakati wowote unapopenda, kulingana na hali yako.

Ni ya nini? punguza nafasi mwanzoni na mwisho wa mstari? Ikiwa unataja nenosiri kwenye tovuti wakati wa kusajili na kwa namna fulani bonyeza kwa bahati mbaya upau wa nafasi na usiitambue, basi nenosiri lako litajumuisha, kwa mfano, si ya wahusika wanne, lakini wa tano, ikiwa ni pamoja na nafasi yako. Na hutaelewa kwa nini nenosiri haifai, kwa sababu hashi ya kamba hii itakuwa tofauti. Kwa hivyo, mimi hupendekeza kila wakati kupunguza nafasi kwenye mstari ili kuzuia nuances kama hizo. Sasa tutaendelea kuzingatia mfano katika mazoezi.

$string_pass = " 1234 " ;
$password = md5(trim($string_pass));
$password2 = md5($string_pass);
mwangwi Nenosiri la $;
mwangwi "
"
;
mwangwi Nenosiri la $2;
?>

Tunaunda variable ambayo itakuwa nenosiri letu, na hasa zinaonyesha nafasi mwanzoni na mwisho wa mstari. Ifuatayo, tunaunda tofauti ambayo nenosiri la haraka litahifadhiwa tayari, na kupitisha mstari kazi ya trim, ambayo itaondoa kwanza nafasi zote zisizohitajika, na kisha tu tutapata nenosiri la haraka. Na katika variable ya pili hatutumii kazi ya kuondoa nafasi na mara moja hash kamba. Kisha tunaonyesha matokeo mawili kwenye skrini ya kivinjari na kuona kuwa ni tofauti kabisa, ingawa tulitumia mfuatano huo mara zote mbili. Walakini, kwa sababu ya nafasi, matokeo ni tofauti kabisa, kwa hivyo unahitaji kuwa mwangalifu sana na jambo hili. Na jambo la mwisho ninapaswa kukuambia. Kuna vitendaji viwili zaidi ambavyo huondoa nafasi mwanzoni mwa mstari, au mwisho wa mstari, na huitwa. mwisho Na trim kwa mtiririko huo. Kwa hiyo, ikiwa unahitaji kuondoa nafasi kutoka kwa pande yoyote, tumia. Na kwa hili ninahitimisha nakala hii na ninakutakia mafanikio katika kazi yako yote.

Kwa lugha yoyote, wakati wa kufanya kazi na masharti, kazi ya kawaida ni kuondoa nafasi zote mwanzoni na mwisho wa mstari. Katika PHP kuna kazi tatu kwa madhumuni haya: ltrim (), rtrim (), trim (). Kitendaji cha ltrim() huondoa nafasi mwanzoni mwa mstari, rtrim() - mwishoni mwa mstari, trim() - mwanzoni na mwisho. Kinachofurahisha ni kwamba chaguo hizi za kukokotoa, pamoja na nafasi, pia huondoa laini mpya, urejeshaji wa gari, kichupo, na mfuatano wa kutoroka wa herufi batili.

$mfano = "\tHi kila mtu\n"; var_dump(trim($mfano)); var_dump(rtrim($mfano)); var_dump(ltrim($mfano));

Kama matokeo, tunapata:

Mfuatano wa "Hujambo kila mtu" (urefu=12) mfuatano "Habari nyote" (urefu=14) mshororo "Hujambo wote" (urefu=13)

Kinachovutia zaidi ni kwamba vitendaji vilivyo hapo juu vinaweza pia kuondoa herufi zilizoainishwa na mtumiaji. Ili kufanya hivyo, kazi zilizo hapo juu zinahitaji kupitisha kama hoja ya pili kamba iliyo na wahusika kufutwa. Kwa mfano:

$mfano = "YHi kila mtu\n"; var_dump(trim($mfano, "y")); var_dump(rtrim($mfano, "y\n")); var_dump(ltrim($mfano, "yH"));

Matokeo yake:

Mfuatano wa "Hi kila mtu" (urefu=13) mfuatano " yHi kila mtu" (urefu=13) kamba "i kila mtu" (urefu=12)