Php variable na haba. PHP: gumagana sa mga string. Mga function ng string ng PHP. I-convert ang HTML sa Plain Text

Kumusta sa lahat, ngayon sasabihin ko sa iyo ang tungkol sa kung paano malaman ang haba ng isang string sa PHP. Ang paksa ay medyo madali dahil ang lahat ay gagawin para sa iyo isang function na tinatawag na strlen. Ito ay simple, ang function ay tumatagal ng isang string, at bilang isang resulta ay nagbabalik ng isang numero, ibig sabihin, ang bilang ng mga character sa string na interesado ka. Tingnan natin ang isang maliit na halimbawa kung saan gagamitin natin ang function na ito.

$string = "Haba ng string";
$count = strlen( $string);
kung ( $bilang > 10 ) {
echo "Ang iyong linya ay may higit sa sampung character.";
}
elseif ($bilang == 10 ) {
echo "May sampung character ang linya mo.";
}
iba pa(
echo "Ang iyong linya ay wala pang sampung character ang haba.";
}
?>

Sumulat kami ng isang simpleng code na tutukuyin kung gaano karaming mga character ang nasa isang linya, at pagkatapos ay mag-print ng isang linya na nagpapahiwatig ng mga character na may kaugnayan sa sampu. Ang unang bagay na ginawa namin ay mag-print ng isang string at ilagay ito sa isang variable. Gumawa kami ng variable kung saan iimbak ang resulta ng pagpapatupad strlen function, ibig sabihin, ang bilang ng mga character. At higit pa sa tulong kung iba constructs, tinutukoy namin ang bilang ng mga character at ipinapakita ang kaukulang linya sa browser. Kung mayroong higit sa sampung mga character sa linya, kung gayon ang unang linya ay magiging output, kung eksaktong sampung mga character, pagkatapos ay ang pangalawang linya, kung hindi man ang ikatlong linya ay magiging output, kung ang output ay ginawa, kung gayon ang bilang ng mga character ay magiging wala pang sampu, kaya hindi tinukoy ang isang partikular na kundisyon. Iyon lang ang code na isinulat namin. Ngayon ang lahat ay naging lubos na malinaw sa iyo, at maaari mong malaman haba ng mga character sa isang string gamit ang PHP, sa anumang sandali na kailangan mo, at sa pagsasagawa ito ay kinakailangan nang madalas. With this I say goodbye to you, see you soon!

"Ang mas bagong internal na parameter parsing API ay inilapat sa lahat ng mga extension na naka-bundle sa PHP 5.3.x. Ang parameter parsing API na ito ay nagiging sanhi ng pagbabalik ng NULL ng mga function kapag pumasa sa mga hindi tugmang parameter. Mayroong ilang mga pagbubukod sa panuntunang ito, tulad ng get_class() function , na patuloy na magbabalik ng FALSE kapag nagkamali."

Kaya, sa PHP 5.3, ang strlen($attributes) ay nagbabalik ng NULL, habang sa PHP 5.2, ang strlen($attributes) ay nagbabalik ng integer 5. Ito ay malamang na makakaapekto sa iba pang mga function, kaya kung nakakakuha ka ng iba't ibang mga pag-uugali o mga bagong bug bigla, tingnan kung ikaw nag-upgrade sa 5.3 (na ginawa namin kamakailan), at pagkatapos ay suriin para sa ilang mga babala sa iyong mga log tulad nito:

Inaasahan ng strlen() na ang parameter 1 ay string, array na ibinigay sa /var/www/sis/lib/functions/advanced_search_lib.php sa linya 1028

Kung gayon, malamang na nararanasan mo ang nabagong gawi na ito.

1 taon na ang nakalipas

Kung ang iyong text ay naglalaman ng UTF8 character (Arabic character halimbawa), ang mb_substr ay maaaring gamitin sa halip na strlen.
ngunit kung ang string ay naglalaman ng UTF16 (wmoji, smiley) pagkatapos ay maaari mong gamitin ang paraang ito upang makakuha ng tamang haba:

Dahil ang ilang emoji (hal : 📌 ) ay 2 , 3 o 4 byte !

2 mga taon na nakalipas

Kapag tumitingin ng haba upang matiyak na ang isang halaga ay magkasya sa isang database field, maging maingat sa paggamit ng tamang function.

May tatlong posibleng sitwasyon:

1. Malamang na kaso: ang column ng database ay UTF-8 na may haba na tinukoy sa mga unicode code point (hal. mysql varchar(200) para sa isang utf-8 database).

// ok kung ang php.ini default_charset ay nakatakda sa UTF-8 (= default na halaga)
mb_strlen ($halaga);
iconv_strlen ($value);
// laging ok
mb_strlen($value, "UTF-8");
iconv_strlen($value, "UTF-8");

// BAD, huwag gumamit ng:
strlen(utf8_decode($value)); // break para sa ilang multi-byte na character
grapheme_strlen ($halaga); // nagbibilang ng mga graphemes, hindi code point
?>

2. Ang column ng database ay may haba na tinukoy sa mga byte (hal. VARCHAR2(200 BYTE) ng oracle)

// ok, ngunit ipinapalagay na ang mbstring.func_overload ay 0 sa php.ini (= default na halaga)
strlen ($halaga);
// ok, binibilang ang pwersa sa bytes
mb_strlen ($value, "8bit")
?>

3. Ang database column ay nasa isa pang character set (UTF-16, ISO-8859-1, atbp...) na may haba na tinukoy sa mga character / code point.

Hanapin ang set ng character na ginamit, at tahasang ipasa ito sa function na haba.

// ok, mga suportadong charset:
mb_strlen ($value, $charset);
// ok, mga sinusuportahang charset: https://www.gnu.org/software/libiconv/
iconv_strlen ($value, $charset);
?>

6 na taon na ang nakaraan

Ang strlen function ng PHP ay kumikilos nang iba kaysa sa C strlen function sa mga tuntunin ng paghawak nito ng mga null byte ("\0").

Sa PHP, HINDI binibilang ang null byte sa isang string bilang dulo ng string, at anumang null byte ay kasama sa haba ng string.

Halimbawa, sa PHP:

strlen("te\0st") = 5

Sa C, ang parehong tawag ay babalik 2.

Kaya, ang strlen function ng PHP ay maaaring gamitin upang mahanap ang bilang ng mga byte sa isang binary string (halimbawa, binary data na ibinalik ng base64_decode).

2 mga taon na nakalipas

MARAMING maling impormasyon dito, na gusto kong itama! Maraming tao ang nagbabala laban sa paggamit ng strlen(), dahil ito ay "sobrang mabagal". Well, malamang na totoo iyon sa mga lumang bersyon ng PHP. Ngunit sa PHP7 iyon" tiyak na hindi na totoo. SUPER mabilis na ngayon!

Gumawa ako ng 20,00,000 byte string (~20 megabytes), at umulit ng ISANG DAANG MILYON BESES sa isang loop. Ang bawat pag-ulit ng loop ay gumawa ng bagong strlen() sa napakahabang string na iyon.

Ang resulta: 100 milyong strlen() na tawag sa isang 20 megabyte string ay tumagal lamang ng kabuuang 488 millisecond. At ang mga strlen() na tawag ay hindi naging mas mabagal/mas mabilis kahit na ginawa kong mas maliit o mas malaki ang string Ang strlen() ay medyo isang pare-parehong oras, napakabilis na operasyon

Kaya't alinman sa PHP7 ay nag-iimbak ng haba ng bawat string bilang isang patlang na maaari itong laging maghanap nang hindi kinakailangang magbilang ng mga character. O kaya ay ini-cache nito ang resulta ng strlen() hanggang sa aktwal na magbago ang mga nilalaman ng string. Sa alinmang paraan, hindi ka na dapat mag-alala muli tungkol sa strlen() performance. As of PHP7, sobrang bilis!

Narito ang kumpletong benchmark code kung gusto mong kopyahin ito sa iyong makina:

$iteration = 100000000 ; // 100 milyon
$str = str_repeat ( "0" , 20000000 );

// benchmark na loop at variable na pagtatalaga upang kalkulahin ang overhead ng loop
$start = microtime(true);
para sa ($i = 0; $i< $iterations ; ++ $i ) {
$len = 0 ;
}
$end = microtime(totoo);
$loop_elapsed = 1000 * ($end - $start );

// benchmark strlen in a loop
$len = 0 ;
$start = microtime(true);
para sa ($i = 0; $i< $iterations ; ++ $i ) {
$len = strlen ($str );
}
$end = microtime(totoo);
$strlen_elapsed = 1000 * ($end - $start );

// ibawas ang loop overhead mula sa strlen() pagkalkula ng bilis
$strlen_elapsed -= $loop_elapsed ;

echo "\nstring haba: ( $len ) \ntest took: ( $strlen_elapsed ) milliseconds\n" ;

?>

5 taon na ang nakalipas

Limit_teksto ng function ($text, $limit = 100000000000) (
kung (strlen ($text)< $limit) {
ibalik ang $text;
}
$split_words = explode(" ", $text);
$out = null;
foreach ($split_words bilang $word) (
if ((strlen($word) > $limit) && $out == null) (
return substr($word, 0, $limit)."...";
}

Kung ((strlen($out) + strlen($word)) > $limit) (
ibalik ang $out . "...";
}
$out.=" " . $salita;
}
ibalik ang $out;
}

echo limit_text("hello world lorem ipsum",10);

Maaaring hatiin ang mga website sa static at dynamic. Matapos ang mastering HTML at CSS, na nagbibigay-daan sa iyo upang gumawa ng isang magandang business card sa Internet, maraming mga tao ang nag-iisip tungkol sa kung paano lumikha ng isang dynamic na website sa PHP. Kasabay nito, dapat isaalang-alang ng taga-disenyo ng layout na nagsisimula na siyang mag-aral ng web programming: ang mga prinsipyo ng pagtatrabaho sa site ay magkakaiba. Isa sa mga unang problema na kinakaharap ng isang baguhan sa PHP ay ang pagtatrabaho sa mga string, pagbabasa at pagproseso ng mga ito.

Kapansin-pansin na ang PHP ay may malaking bilang ng mga pamamaraan, kaya dapat mong simulan ang pag-aaral ng mga ito sa mga pinakasimpleng manipulasyon, tulad ng pag-output ng string, paghahanap, pagkuha o pagpapalit ng substring, pagpapalit ng case at pagbabalik ng haba ng string. Maraming mga pag-andar ang hindi gumagana nang maayos sa mga character na Cyrillic. Samakatuwid, ang lahat ng mga halimbawa ay nakasulat sa Ingles para sa kalinawan. Para sa mga Cyrillic string, ang parehong mga function ay ginagamit, ngunit may mb_ prefix (halimbawa, mb_strpos()). Bago gumamit ng mga analog, kailangan mong alisin ang komento sa linya sa php.ini extension=php_mbstring.dll, alisin lamang ang semicolon.

Paglikha at Pag-output ng String

Susuriin namin ang output ng isang string sa screen gamit ang kilalang echo language construct. Maaaring i-output ng programmer ang linya kaagad:

echo "Ito ay isang Bagong Linya"

o lumikha muna ng variable at pagkatapos ay i-print ito sa screen:

$str = "Ito ay isang Bagong Linya";

Kung kailangan mong magpakita ng ilang mga linya sa isa, pagkatapos ay gumamit ng concatenation:

echo "Ito" . "Bago". "Linya";

$str1 = "Ito";

$str2 = "Bago";

$str3 = "String";

echo $str1 . $str2 . $str3;

Sa huling kaso, ipapakita ang screen Ito ang NewLine. Ang isang puwang ay maaaring maidagdag kaagad kapag tumatawag ng echo:

echo $str1 . " " . $str2 . " " . $str3;

Sa kasong ito, ipapakita ng screen ang: "Ito ay isang Bagong Linya." Posible ang pagsasama-sama hindi lamang sa panahon ng output, kundi pati na rin kapag lumilikha ng isang string:

$str1 = "Ito";

$str2 = "Bago";

$str3 = "String";

$string = $str1 . " " . $str2 . " " . $str3;

echo $string;

Ang Echo ay nagpapakita ng parehong Cyrillic at Cyrillic. Kung ang isa sa mga variable ay naglalaman ng isang numero, sa panahon ng pagsasama-sama, ang numerong ito ay mako-convert sa kaukulang string:

$sum = $i + $i; //ngayon ang $sum ay naglalaman ng numero 4

echo $i . " + " . $i . "=" . $sum;

Ipapakita ng screen ang: "2 + 2 = 4".

Mga simbolo ng serbisyo

Sabihin nating ang isang string ay tinukoy sa ($string = "Gaya nito"). Pagkatapos ay maaari mong ganap na ligtas na gumamit ng mga control sequence:

  • \n gumaganap ng isang line feed;
  • \r nagbabalik ng karwahe;
  • Ang \" ay tumatakas sa mga dobleng panipi:
    • echo "String na may \"double\" quotes"; //String na may double quotes
  • \$ tumakas sa dolyar;
  • \\ nakatakas sa isang backslash.

Marami pang sequence, lahat ng mga ito ay makikita sa opisyal na dokumentasyon ng PHP.

Paano mahanap ang posisyon ng unang paglitaw ng isang substring

Sabihin nating mayroon tayong simpleng linya:

Mayroon din kaming dalawang linya na may mga pangalan:

$name = "Yemelyan";

$anotherName = "Katherine";

Kailangan nating malaman kung ang unang linya ay naglalaman ng dalawang pangalang ito. Upang gawin ito, gamitin ang strpos($str, $search) function. Ibinabalik nito ang posisyon ng hinanap na substring, $search, kung ang string na iyon ay nakapaloob sa orihinal, $str. Kung hindi, ibabalik ng function ang boolean value na false. Halimbawa, ang strpos($string, $anotherName) ay magbabalik ng false, habang ang strpos($string, $name) ay magbabalik ng integer. Magiging ganito ang code (isusulat namin ang bersyon kapag ipinakita ang posisyon sa screen):

$string = "Ang pangalan ko ay Yemelyan at ako ay 27 taong gulang";

$name = "Yemelyan";

$anotherName = "Katherine";

echo strpos($string, $anotherName); //ay magpapakita ng false

echo strpos($string, $name); //ay i-print ang posisyon ng unang paglitaw ng substring

Pakitandaan na ang pagnunumero ng linya ay nagsisimula sa zero, ibig sabihin, sa aming kaso, ang huling linya ay magpapakita ng numero 11 (bilang din ang mga puwang).

Paghahanap ng posisyon ng huling paglitaw ng isang substring at mga pitfalls

Kung ibinalik ng strpos() function ang posisyon ng unang paglitaw, ang inverse function na strrpos() ay maghahanap para sa huling paglitaw ng substring.

Mayroong ilang mga pitfalls na nauugnay sa panimulang pagnunumero. Ito ay nagkakahalaga ng pagsasaalang-alang: sa PHP, ang pagtatrabaho sa mga string ay maaaring kumplikado sa pamamagitan ng mga paghihigpit sa mga paghahambing. Kaya, mas mabuting huwag gamitin ang paghahambing na operator na may negation: strpos($str, $search)!=false. Sa anumang bersyon ng PHP, ang mga halimbawang may tulad na katumbas ay maaaring hindi gumana nang tama, dahil ang line numbering ay nagsisimula sa zero, at sa lohikal na interpretasyon, 0 ay mali. Nalalapat din ito sa strrpos() function.

Paano mahanap ang bilang ng mga paglitaw ng isang substring

Kadalasan kailangan mong hanapin hindi ang posisyon ng una o huling paglitaw ng isang substring sa isang string, ngunit ang kabuuang bilang ng mga ito. Upang gawin ito, gamitin ang function na substr_count(), na nagpoproseso ng hindi bababa sa dalawang variable: substr_count($str, $search). Nagbabalik ng integer. Kung kinakailangan upang bawasan ang lugar ng paghahanap sa pamamagitan ng string, pagkatapos ay dalawa pang variable ang ipapasa sa function: ang simula at dulo ng string, ayon sa pagkakabanggit. Ibig sabihin, ang function sa kasong ito ay tinatawag na ganito: substr_count($str, $search, $start, $end). Hahanapin ng function ang substring na $search sa pagitan mula $start hanggang $end ng orihinal na string na $str. Kung ang string ay hindi natagpuan, ang function ay magbabalik ng zero.

Paano baguhin ang kaso ng isang string sa PHP: mga halimbawa

Ang pagpapalit ng kaso ay kadalasang ginagamit upang ihambing ang mga string at Sabihin nating ang gumagamit ay dapat na ilagay ang pangalan ng kataas-taasang diyos sa programa May isang opsyon na "Isa" kung saan ang sagot ng gumagamit ay ihahambing. Kung ang ipinasok na teksto ay hindi tumutugma sa umiiral na isa (halimbawa, ang gumagamit ay nagsusulat ng "isa" o "ISA"), ang programa ay magbabalik ng mali sa halip na totoo. Para maiwasan ito, ginagamit ang case change function. Ito ay kadalasang ginagamit kung ang isang PHP site ay may mga tag: sa halip na daan-daang mga variation ng salitang "personal" ("Personal", "personal", "PERSONAL", atbp.) mayroon lamang isang lowercase na tag.

Binabago ng strtolower() function ang case sa lowercase. Sabihin nating may linyang $catName = "Fluffy". Ibabalik ng function na strtolower($catName) ang string na "fluffy". Maaari mong baguhin ang case sa uppercase gamit ang strtoupper() function.

Paano mahanap ang haba ng isang string sa PHP: gumagana sa mga function

Kadalasan kailangan mong hanapin ang haba ng isang string. Halimbawa, sa PHP, maaaring kailanganin ang pagtatrabaho sa mga string ng ganitong uri kapag gumagawa ng loop. Upang maghanap ng string, gamitin ang strlen() function, na nagbabalik ng numero - ang bilang ng mga character. Hindi natin dapat kalimutan na ang huling karakter ay magkakaroon ng numerong strlen($str)-1, dahil ang pagnunumero ay nagsisimula sa zero.

Pagkuha at pagpapalit ng substring sa PHP: gumagana sa mga string

Ang pagkuha ng substring ay ginagawa ng substr() function, na maaaring tumagal ng dalawa o tatlong argumento: substr($str, $start, $end). Sabihin nating mayroon tayong $string = "Fluffy cat" at gusto nating makuha ang substring mula sa pangalawa hanggang sa ikaapat na character. Dahil ang pagnunumero ay nagsisimula sa zero, ang variable na may substring na ito ay magiging ganito: $newString = substr($string, 1, 4). Kung ipasok natin ang $newString = substr($string, 1), makakakuha tayo ng substring mula sa pangalawang karakter hanggang sa huli (iyon ay, "luffy"). Ang code na ito ay kapareho ng kumpletong string code gamit ang strlen(): substr($string, 1, strlen($string)).

Upang palitan ang isang substring, gamitin ang str_replace() function, na tumatagal ng tatlong variable: str_replace($subStr, $newSub, $str). Hindi tulad ng maraming mga function, ang str_replace() ay gumagana nang tama sa mga Cyrillic na character at walang analogue na may prefix. Halimbawa:

$str = "Grabe ang panahon ngayon!";

$newStr = str_replace("kakila-kilabot", "kahanga-hanga", $str); //Magandang panahon ngayon!

Pag-convert ng string sa isang numero

Ang bawat isa na natututo ng web programming maaga o huli ay kailangang mag-convert ng string sa isang numero. Upang gawin ito, dalawang magkatulad na function ang ginagamit: intval() at floatval(), bawat isa ay tumatagal ng isang $string variable. Nag-iiba sila sa isa't isa lamang sa uri ng data na ibinalik: intval() ay nagbabalik ng integer, at ang floatval() ay nagbabalik ng floating point number.

Upang magamit ang parehong intval() at floatval(), ang string ay dapat magsimula sa mga digit, at ang mga ito ay mako-convert sa isang numero. Kung ang mga numero ay sinusundan ng anumang hanay ng mga titik, sila ay hindi papansinin. Kung ang string ay nagsisimula sa mga titik, ang paggamit ng function ay magbabalik ng zero. Sa isip, ang linya ay dapat maglaman lamang ng mga numero.

Pag-convert ng isang numero sa isang string

Kadalasan kailangan mong i-convert ang mga numero sa isang string. Sabihin, kung kailangan mong kumuha ng kalahating numero at parisukat ito (halimbawa, suriin kung totoo ang pagkakapantay-pantay: 88 x 88 + 33 x 33 = 8833). Sa kasong ito, ginagamit ang strval() function, na nagbabalik ng string na may numero. Pagkatapos nito, maaari mong isagawa ang lahat ng iba pang mga aksyon gamit ang bagong string: baguhin, maghanap para sa isang paglitaw ng isang substring at iba pang mga function. Kung kinakailangan, ang string ay maaaring i-convert pabalik sa isang numero gamit ang paraan na inilarawan sa itaas.

Sinuri ng artikulo ang isang maliit na bahagi lamang ng lahat ng mga function na may kaugnayan sa mga string. Ang ilang mga hindi inilarawang function ay gumagana sa mga simbolo, ngunit karamihan ay hindi kasama sa materyal dahil sa pagiging tiyak. Upang maging pamilyar sa mga tampok na ito, dapat kang magpatuloy sa pagbabasa ng opisyal na dokumentasyon ng PHP, na nagpapakita ng pinakabagong impormasyon.

Naglalagay ng HTML line break code bago ang bawat line feed

  • number_format - Nag-format ng isang numero na may paghihiwalay ng pangkat
  • ord - Ibinabalik ang ASCII code ng isang character
  • parse_str - Nag-parse ng string sa mga variable
  • print - Nagpi-print ng string
  • printf
  • quoted_printable_decode - Nagde-decode ng string na naka-encode ng naka-quote na paraan ng napi-print
  • quotemeta - Tinatakasan ang mga espesyal na karakter
  • rtrim - Tinatanggal ang mga puwang mula sa dulo ng isang string
  • sha1 - Ibinabalik ang SHA1 hash ng isang string
  • sha1_file - Ibinabalik ang SHA1 hash ng isang file
  • similar_text - Kinakalkula ang antas kung saan magkatulad ang dalawang string
  • soundex - Ibinabalik ang soundex key para sa isang string
  • sprintf
  • sscanf - Nag-parse ng string ayon sa isang ibinigay na format
  • strcasecmp - Case-insensitive na paghahambing ng string na ligtas sa binary
  • strcmp - Binary-safe na paghahambing ng string
  • strcoll - Paghambingin ang mga string batay sa kasalukuyang lokal
  • strcspn - Ibinabalik ang haba ng bahagi sa simula ng string na hindi tumutugma sa mask
  • stripcslashes - Tinatanggal ang pagtakas ng character na ginawa ng addcslashes() function
  • stripos - Ibinabalik ang posisyon ng unang paglitaw ng isang substring, case insensitive
  • stripslashes - Tinatanggal ang pagtakas ng character na ginawa ng addslashes()
  • strip_tags - Tinatanggal ang mga HTML at PHP tag mula sa isang string
  • stristr - Katulad ng strstr function, ngunit case independent
  • strlen - Ibinabalik ang haba ng isang string
  • strnatcasecmp - Ihambing ang mga case-insensitive na string gamit ang isang algorithm
  • strnatcmp - Paghahambing ng mga string gamit ang "natural na pag-order" na algorithm
  • strncasecmp
  • strncmp - Case-insensitive, binary-safe na paghahambing ng unang n character ng mga string
  • strpos - Hinahanap ang unang paglitaw ng isang substring sa isang string
  • strhrchr
  • strrev - Binabaliktad ang isang string
  • strripos - Ibinabalik ang posisyon ng huling paglitaw ng isang substring, case insensitive
  • strrpos - Hinahanap ang huling paglitaw ng isang character sa isang string
  • strspn - Ibinabalik ang haba ng bahagi sa simula ng string na tumutugma sa mask
  • strstr - Hinahanap ang unang paglitaw ng isang substring
  • strtok - Naghahati ng string
  • strtolower - Kino-convert ang isang string sa lowercase
  • strtoupper - Kino-convert ang isang string sa uppercase
  • strtr - Kino-convert ang mga ibinigay na character
  • str_ireplace - Isang case-insensitive na variant ng str_replace() function.
  • str_pad - Naglalagay ng string gamit ang isa pang string sa isang partikular na haba
  • str_repeat - Nagbabalik ng paulit-ulit na string
  • str_replace - Pinapalitan ang string ng paghahanap ng kapalit na string
  • str_rot13 - Nagsasagawa ng pagbabagong ROT13 sa isang string
  • str_shuffle - Bina-shuffle ang mga character sa isang string
  • str_split - Kino-convert ang isang string sa isang array
  • str_word_count - Nagbabalik ng impormasyon tungkol sa mga salita sa isang string
  • substr - Ang function ay nagbabalik ng bahagi ng isang string
  • substr_count - Binibilang ang bilang ng mga paglitaw ng isang substring sa isang string
  • substr_replace - Pinapalitan ang bahagi ng isang string
  • trim - Tinatanggal ang mga puwang mula sa simula at dulo ng isang string
  • ucfirst - Kino-convert ang unang character ng isang string sa uppercase
  • ucwords - Kino-convert ang unang character ng bawat salita sa isang string sa uppercase
  • vprintf - Nagpi-print ng na-format na string
  • vsprintf - Nagbabalik ng na-format na string
  • wordwrap - Binabalot ang isang linya para sa isang naibigay na bilang ng mga character gamit ang isang line break na character
  • Mga tampok ng mga operator ng paghahambing na inilapat sa mga string.

    $isa = 1; // Numero uno. $zero = 0; // Italaga ang numerong zero. kung ($one == "") echo 1; // Obviously not equal - does not output 1. if ($zero == "") echo 2; //* Pansin! Taliwas sa inaasahan, nagpi-print ito ng 2! kung ("" == $zero) echo 3; //* At hindi rin ito makakatulong - nagpi-print ito!.. if ("$zero" == "") echo 4; // Tama iyan. if (strval($zero) == "") echo 5; // Ito ay tama rin - hindi ito nagpi-print ng 5. kung ($zero === "") echo 6; // Pinakamahusay na paraan, ngunit hindi gumagana sa PHP 3.

    tumaga()

    Ang chop() function ay nagbabalik ng string pagkatapos alisin ang mga trailing space at mga bagong linya. Ang chop() function syntax ay:

    string chop(string string)

    Sa sumusunod na halimbawa, ang chop() function ay nag-aalis ng mga karagdagang bagong linya:

    $header = "Talaan ng Nilalaman\n\n"; $header = chop($header); // $header = "Talaan ng Nilalaman"

    str_pad()

    Ang str_pad() function ay nagpapad ng isang string sa isang tiyak na haba kasama ang mga ibinigay na character at ibinabalik ang na-format na string. Syntax ng str_pad() function:

    string str_pad (string string, int pad_length [, string pad [, int pad_type]])

    Kung ang opsyonal na parameter ng padding ay hindi tinukoy, ang string ay nilagyan ng mga puwang. Kung hindi, ang string ay may palaman sa mga ibinigay na character. Bilang default, ang linya ay may palaman sa kanan; gayunpaman, maaari mong ipasa ang parameter ng padding_type na STR_PAD_RIGHT, STR_PAD_LEFT, o STR_PAD_BOTH, na magdadala sa row sa tinukoy na direksyon. Ang halimbawa ay nagpapakita ng string padding na may str_pad() function na may mga default na parameter:

    $pagkain = "salad"; print str_pad ($food, 5): // Pini-print ang string na "salad" Ang sumusunod na halimbawa ay gumagamit ng mga opsyonal na parameter ng str_pad() function: $header = "Talaan ng Mga Nilalaman"; +=+=" , STR_PAD_BOTH); // Ipinapakita ng browser ang linya =+=+= Tabe of Contents=+=+="

    trim()

    Tinatanggal ng trim() function ang lahat ng whitespace mula sa magkabilang dulo ng isang string at ibinabalik ang resultang string. Trim() function syntax:

    string trim (string country]

    Kasama sa mga aalis na puwang ang mga espesyal na character na \n, \r, \t, \v, at \0.

    ltrim()

    Tinatanggal ng lrim() function ang lahat ng whitespace at mga espesyal na character mula sa kaliwang gilid ng isang string at ibinabalik ang resultang string. ltrim() function syntax:

    string ltrim (string string)

    Tinatanggal ng function ang parehong mga espesyal na character gaya ng trim() function.

    strlen()

    Pagtukoy sa Haba ng String

    Ang haba ng isang string sa mga character ay maaaring matukoy gamit ang strlen() function. Syntax ng strlen() function:

    int strlen (string string)

    Ang sumusunod na halimbawa ay nagpapakita kung paano matukoy ang haba ng isang string gamit ang strlen() function:

    $string = "hello"; $length = strlen($string); // $haba = 5

    Paghahambing ng dalawang string

    Ang paghahambing ng dalawang string ay isa sa pinakamahalagang operasyon ng string sa anumang wika. Bagama't maaaring malutas ang problemang ito sa maraming iba't ibang paraan, mayroong apat na pag-andar ng paghahambing ng string sa PHP:

    strcmp()

    Ang strcmp() function ay naghahambing ng dalawang string sa isang case-sensitive na paraan. Syntax ng strcmp() function: int strcmp (string string1, string string2)

    Kapag kumpleto na ang paghahambing, ibabalik ng strcmp() ang isa sa tatlong posibleng halaga:

    • 0 kung ang line1 at line2 ay pareho;
    • < 0, если строка1 меньше, чем строка2;
    • > 0 kung ang string2 ay mas maliit kaysa sa string1.

    $sthng1 = "mantikilya"; $string2 = "mantikilya"; if ((strcmp($string1. $string2)) == 0): print "Ang mga string ay katumbas!"; tapusin kung; // Ang if command ay nagbabalik ng TRUE

    strcasecmp()

    Ang strcasecmp() function ay eksaktong kapareho ng strcmp(), na may isang pagbubukod - hindi isinasaalang-alang ng paghahambing ang kaso ng mga character. Ang syntax ng strcasecmp() function ay:

    int strcasecmp (string string1, string string2)

    Ang sumusunod na snippet ay naghahambing ng dalawang magkatulad na string:

    $string1 = "mantikilya"; $string2 = "Mantikilya"; if ((strcmp($string1, $string2)) == 0): print "Ang mga string ay katumbas!"; tapusin kung; // Ang if command ay nagbabalik ng TRUE

    strspn()

    Ibinabalik ng strspn() function ang haba ng unang segment ng string1 na naglalaman ng mga character na nasa string2. Ang strspn() function syntax ay:

    int strspn (string string1, string string2)

    Ipinapakita ng sumusunod na snippet kung paano ginagamit ang strspn() function upang i-verify ang isang password:

    $password = "12345"; if (strspn($password, "1234567890") != strlen($password)): print "Ang password ay hindi maaaring binubuo lamang ng mga numero!"; tapusin kung:

    strcspn()

    Ibinabalik ng strcspn() function ang haba ng unang segment ng string1 na naglalaman ng mga character na wala sa string2. Syntax ng strcspn() function:

    int strcspn (string string1, string string2)

    Ang sumusunod na snippet ay gumagamit ng strcspn() function upang suriin ang password:

    $password = "12345"; if (strcspn ($password, "1234567890") == 0): print "Ang password ay hindi maaaring binubuo lamang ng mga numero!"; tapusin kung;

    Pinoproseso ang data ng string nang hindi gumagamit ng mga regular na expression

    Kapag nagpoproseso ng malaking halaga ng impormasyon, ang mga function ng regular na expression ay lubos na nagpapabagal sa pagpapatupad ng programa. Ang mga function na ito ay dapat lamang gamitin kapag nagpoproseso ng medyo kumplikadong mga string kung saan ang mga regular na expression ay talagang kinakailangan. Kung ang pagsusuri ng teksto ay isinagawa ayon sa medyo simpleng mga panuntunan, maaari mong gamitin ang mga karaniwang function ng PHP, na makabuluhang nagpapabilis sa pagproseso. Ang lahat ng mga function na ito ay inilarawan sa ibaba.

    strtok()

    Hinahati ng strtok() function ang isang string sa mga token gamit ang mga separator na tinukoy ng pangalawang parameter. Ang strtok() function syntax ay:

    string strtok (string string, string delimiters)

    Ang strtok() function ay may isang kakaibang bagay: upang ganap na hatiin ang isang string, ang function ay dapat na tinatawag na ilang beses nang sunud-sunod. Sa susunod na tawagin ang function, kinukuha nito ang susunod na token mula sa string. Sa kasong ito, isang beses lang tinukoy ang parameter ng string - sinusubaybayan ng function ang kasalukuyang posisyon sa string hanggang sa ganap na mai-parse ang string sa mga token o may tinukoy na bagong parameter ng string. Ang sumusunod na halimbawa ay nagpapakita ng paghahati ng isang string gamit ang maramihang mga delimiter:

    $info = "WJ Gi1more: [email protected]| Columbus, Ohio"; // Delimiters - colon (:), vertical bar (|) at comma (.) $tokens = ":|,"; $tokenized = strtok($info, $tokens); // Print array elements $tokenized habang ($tokenized): echo "Element = $tokenized
    "; // Pakitandaan na ang mga kasunod na tawag sa strtok // ay hindi pumasa sa unang argumento $tokenized = strtok($tokens); endwhile; Resulta: Element = WJGilmore Element = [email protected] Element = Columbus Element = Ohio

    parse_str()

    Ang parse_str() function ay nag-parse ng mga pares sa isang string at nagtatalaga ng mga value sa mga variable sa kasalukuyang saklaw. Syntax ng parse_str() function:

    void parse_str (string string)

    Ang parse_str() function ay lalong kapaki-pakinabang kapag nag-parse ng mga URL na naglalaman ng HTML form data o iba pang mayamang impormasyon. Ang sumusunod na halimbawa ay nag-parse ng impormasyong ipinasa sa isang URL. Ang string ay isang karaniwang paraan ng pagpasa ng data sa pagitan ng mga pahina, maaaring pinagsama-sama sa isang hyperlink o inilagay sa isang HTML form:

    $url = "fname=wj&lname=gilmore&zip=43210"; parse_str($url); // Pagkatapos na maisakatuparan ang parse_str(), ang mga sumusunod na variable ay magagamit: // $fname = "wj": // $lname = "gilmore"; // $zip = "43210"

    Dahil ang function na ito ay idinisenyo upang gumana sa mga URL, hindi nito pinapansin ang ampersand (&) character.

    sumabog()

    Hinahati ng explode() ang isang string sa mga elemento at ibinabalik ang mga elementong iyon bilang array. Explode() function syntax:

    ang array ay sumabog (string delimiter, string string [, int threshold])

    Nagaganap ang paghahati sa bawat instance ng separator, at ang bilang ng mga resultang fragment ay maaaring limitahan ng opsyonal na parameter ng threshold.

    Ang explode() function ay nagpapakita ng paghahati ng string sa sumusunod na halimbawa:

    $info = "wilson | baseball | Indians"; $user = explode("|", $info); // $user = "wilson"; // $user = "baseball"; // $user = "Indians";

    Ang explode() function ay halos magkapareho sa POSIX regular expression function split() na inilarawan sa itaas. Ang pangunahing pagkakaiba ay ang pagpasa ng mga regular na expression bilang mga parameter ay pinapayagan lamang kapag tumatawag sa split().

    sumabog()

    Kung hinahati ng explode() function ang isang string sa array elements, ang katapat nito, ang implode() function, ay pinagsasama ang array sa isang string. Implode() function syntax:

    string implode (string separator, array fragment)

    Ang pagbuo ng isang string mula sa isang array ay ipinapakita sa sumusunod na halimbawa:

    $ohio_cities = array("Columbus", "Youngstown", "Cleveland", "Cincinnati"); $city_string = implode("l", $ohio_cities); // $city_string = "Columbus | Youngstown | Cleveland | Cincinnati";

    Ang implode() ay may alias, ang join() function.

    strpos()

    Hinahanap ng strpos() function ang unang pagkakataon ng isang ibinigay na substring sa isang string. Syntax ng strpos() function:

    int strpos (string string, string substring [, int offset])

    Tinutukoy ng opsyonal na offset parameter ang posisyon kung saan dapat magsimula ang paghahanap. Kung ang substring ay hindi natagpuan, ang strpos() ay nagbabalik ng FALSE (0).

    Tinutukoy ng sumusunod na halimbawa ang posisyon ng unang paglitaw ng isang petsa sa log file:

    $log = "206.169.23.11:/www/:2000-08-10 206.169.23.11:/www/logs/:2000-02-04 206.169.23.11:/www/img/:1999-01-31"; // Sa anong posisyon sa journal unang lumitaw ang taong 1999? $pos = strpos($log, "1999"); // $pos = 95. dahil ang unang instance ng "1999" // ay nasa posisyon 95 ng linyang nakapaloob sa $log variable

    strpos()

    Hinahanap ng strrpos() function ang huling instance ng isang ibinigay na character sa isang string. Ang strrpos() function syntax ay:

    int strpos (string string, char character)

    Sa mga tuntunin ng mga kakayahan, ang function na ito ay mas mababa kaysa sa katapat nito - ang strpos() function, dahil pinapayagan ka nitong maghanap lamang ng isang character, at hindi para sa buong string. Kung ang isang string ay ipinasa bilang pangalawang parameter sa strrpos(), tanging ang unang character nito ang gagamitin sa paghahanap.

    str_replace()

    Ang str_replace() function ay naghahanap sa isang string para sa lahat ng paglitaw ng isang ibinigay na substring at pinapalitan ang mga ito ng isang bagong substring. Syntax ng str_replace() function:

    string str_replace (string substring, string replacement, string string)

    Ang substr_replace() function, na inilarawan sa ibang pagkakataon sa seksyong ito, ay nagbibigay-daan sa iyo na palitan lamang ang isang partikular na bahagi ng isang string. Ipinapakita ng sumusunod kung paano ginagamit ang str_replace() function para magsagawa ng pandaigdigang pagpapalit sa isang string.

    Kung ang substring ay hindi kailanman lilitaw sa string, ang orihinal na string ay hindi nababago:

    $favorite_food = "Ang mga paborito kong pagkain ay ice cream at chicken wings"; $favorite_food = str_replace("chicken_wings", "pizza", $favohte_food); // $favorite_food = "Ang mga paborito kong pagkain ay ice cream at pizza"

    strstr()

    Ang strstr() function ay nagbabalik ng bahagi ng isang string na nagsisimula sa unang paglitaw ng isang ibinigay na substring. Ang strstr() function syntax ay:

    string strstr (string string, string substring)

    Ang sumusunod na halimbawa ay gumagamit ng strstr() function upang kunin ang isang domain name mula sa isang URL:

    $url = "http://www.apress.com"; $domain - strstr($url, "."); // $domain = ".apress.com"

    substr()

    Ibinabalik ng substr() function ang bahagi ng isang string na nagsisimula sa isang naibigay na panimulang posisyon at may ibinigay na haba. Substr() function syntax:

    string substr (string string, int start [, int length])

    Kung ang opsyonal na parameter ng haba ay hindi tinukoy, ang substring ay ipinapalagay na magsisimula sa tinukoy na panimulang posisyon at magpapatuloy hanggang sa dulo ng string. May apat na bagay na dapat isaalang-alang kapag ginagamit ang feature na ito:

    • kung ang panimulang parameter ay positibo, ang ibinalik na substring ay magsisimula sa posisyon ng linya na may ibinigay na numero;
    • kung negatibo ang start parameter, magsisimula ang ibinalik na substring sa posisyon (haba ng string - simula);
    • kung positibo ang haba, kasama sa ibinalik na substring ang lahat ng character mula simula hanggang simula+haba. Kung ang huling halaga ay lumampas sa haba ng string, ang mga character hanggang sa dulo ng string ay ibabalik;
    • kung negatibo ang haba, magtatapos ang ibinalik na substring sa tinukoy na distansya mula sa dulo ng string.

    Tandaan na ang start parameter ay tumutukoy sa offset mula sa unang character ng linya; kaya ang ibinalik na string ay talagang nagsisimula sa numero ng character (start + 1).

    Ang sumusunod na halimbawa ay nagpapakita ng substr() substring substring:

    $car = "1944 Ford"; Smodel = substr($kotse, 6); // Smodel = "Ford"

    Halimbawa na may positibong parameter ng haba:

    $car = "1944 Ford"; $model = substr($kotse, 0, 4); // $model = "1944" Halimbawa na may negatibong parameter ng haba: $car = "1944 Ford"; $model = substr($kotse, 2, -5); // $model = "44"

    substr_count()

    Ang substr_count() function ay nagbabalik ng bilang ng mga paglitaw ng isang substring sa isang ibinigay na string. Ang syntax ng substr_count() function ay: int substr_count (string string, string substring) Sa sumusunod na halimbawa, binibilang ng substr_count() function ang bilang ng mga paglitaw ng substring ain: $tng_twist = "Ang ulan ay higit sa lahat sa kapatagan ng Espanya"; $count = substr_count($tng_twist, "ain"); // $bilang = 4

    substr_replace()

    Pinapalitan ng substr_replace() function ang bahagi ng isang string na nagsisimula sa isang partikular na posisyon. Kung tinukoy ang opsyonal na parameter ng haba, papalitan ang isang fragment ng tinukoy na haba; kung hindi, ang pagpapalit ay isinasagawa sa buong haba ng kapalit na string. Ang syntax ng substr_replace() function ay:

    string substr_replace (string string, pagpapalit ng string, int start [, int length])

    Ang mga parameter ng pagsisimula at haba ay itinakda ayon sa ilang mga patakaran:

    • kung ang panimulang parameter ay positibo, ang kapalit ay magsisimula mula sa tinukoy na posisyon;
    • kung negatibo ang start parameter, magsisimula ang pagpapalit sa posisyon (haba ng string -start);
    • kung positibo ang parameter ng haba, papalitan ang isang fragment ng tinukoy na haba;
    • kung ang haba ay negatibo, ang kapalit ay nagtatapos sa posisyon (haba ng string -haba).

    Ang simpleng pagpapalit ng text gamit ang substr_replace() ay ipinapakita sa sumusunod na halimbawa:

    $favs = " "mga paboritong link"; $name = "Alessia"; // Parameter "0, 0" ay nangangahulugan na ang fragment na papalitan ay magsisimula // at magtatapos sa unang posisyon ng linya. $favs - substr_replace( $favs, $name , 0, 0);

    Resulta:

    Mga paboritong link ni Alessia

    Pag-convert ng mga string at file sa HTML na format at vice versa

    Ang pag-convert ng isang string o isang buong file sa isang format na angkop para sa pagtingin sa isang web browser (o vice versa) ay mas madali kaysa sa tila sa unang tingin. Ang PHP ay may mga espesyal na function para dito.

    Pag-convert ng teksto sa HTML

    Ang mabilis na pag-convert ng plain text sa format ng web browser ay isang pangkaraniwang gawain. Ang mga function na inilarawan sa seksyong ito ay makakatulong sa iyo na malutas ito.

    nl2br()

    Pinapalitan ng nl2br() function ang lahat ng newline na character (\n) na may katumbas na HTML constructs.

    nl2br() function syntax:

    string nl2br (string string)

    Ang mga newline na character ay maaaring nakikita (iyon ay, tahasang kasama sa linya) o hindi nakikita (halimbawa, inilagay sa editor). Ang sumusunod na halimbawa ay nagko-convert ng text string sa HTML na format sa pamamagitan ng pagpapalit sa \n character ng mga line break:

    // Text string na ipinapakita sa editor. $text_recipe = "Recipe ng Party Sauce: 1 lata na nilagang kamatis 3 kutsarang sariwang lemon juice Haluin, malamig ang server."; // I-convert ang mga bagong linya sa
    $htinl_recipe = nl2br($text_recipe) Ang kasunod na output ng $html_recipe ay magbabalik ng sumusunod na HTML text sa browser: Party Sauce recipe:
    1 lata na nilagang kamatis
    3 kutsarang sariwang lemon juice
    Haluin, malamig ang server.

    htmlentities()

    Ang htmlentities() function ay nagko-convert ng mga character sa katumbas na HTML constructs. Ang syntax para sa htmlentities function ay:

    string htmlentities (string string)

    Ang sumusunod na halimbawa ay gumaganap ng kinakailangang pagpapalit ng mga string na character para sa output sa browser:

    $user_input = "Ang cookbook, na pinamagatang Cafe Francaise" ay nagkakahalaga

    Ang function na htmlentities() ay kasalukuyang gumagana lamang para sa mga character na pag-encode ng ISO-8559-1 (ISO-Latin-1). Gayundin, hindi nito kino-convert ang mga puwang sa tulad ng iyong inaasahan.

    htmlspecialchars()

    Pinapalitan ng function na htmlspecialchars() ang ilang partikular na character na may espesyal na kahulugan sa konteksto ng HTML na may katumbas na mga konstruksyon ng HTML. Syntax ng htmlspecialchars() function:

    string htmlspecialchars (string string)

    Kasalukuyang kino-convert ng html special chars() ang mga sumusunod na character: & convert sa &; Ang " " ay na-convert sa "; ay na-convert sa >.

    Sa partikular, nakakatulong ang feature na ito na pigilan ang mga user na mag-type ng HTML markup sa mga interactive na web application (gaya ng mga online na forum). Ang mga pagkakamali sa HTML markup ay maaaring maging sanhi ng hindi tamang pagkakabuo ng buong page. Gayunpaman, mayroong isang mas mahusay na solusyon sa problemang ito - ganap na alisin ang mga tag mula sa isang string gamit ang strip_tags() function.

    Ang sumusunod na halimbawa ay nagpapakita ng pag-alis ng mga potensyal na mapanganib na character ng htmlspeclalchars() function:

    $user_input = "Hindi ko lang makuha ng PHP at ang mga kamangha-manghang recipe sa pagluluto!"; $conv_input = htmlspecialchars($user_input); // $conv_input = "Hindi ko lang kaya<> ng PHP at mga kamangha-manghang recipe sa pagluluto!"

    Kung ang htmlspecialchars() function ay ginagamit kasama ng nl2br(), kung gayon ang huli ay dapat na tawagan pagkatapos ng htmlspecialchars(). Kung hindi man ang mga disenyo
    , na nabuo kapag ang nl2br() ay tinawag, ay na-convert sa mga nakikitang character.

    get_html_translation_table()

    Ang get_html_translation_table() function ay nagbibigay ng maginhawang paraan ng pag-convert ng text sa HTML na katumbas Ang syntax ng get_htrril_translation_table() function ay:

    string get_html_translation_table (int table)

    Ang function na get_html_translation_table() ay nagbabalik ng isa sa dalawang talahanayan ng pagsasalin (tinukoy ng parameter ng talahanayan) na ginamit sa pagpapatakbo ng mga karaniwang function na htmlspecialchars() at htmlentities(). Maaaring gamitin ang return value kasama ng isa pang standard na function, strtr(), para i-convert ang text sa HTML code.

    Ang parameter ng talahanayan ay tumatagal ng isa sa dalawang halaga:

    • HTML_ENTITIES;
    • HTML_SPECIALCHARS.

    Ang sumusunod na halimbawa ay gumagamit ng get_html_translation_table() function upang i-convert ang text sa HTML:

    $string = "La pasta e il piatto piu amato in Italia"; $translate = get_html_translation_table(HTML_ENTITIES); print strtr($string, $translate); // Ang mga espesyal na character ay na-convert sa mga HTML construct // at nai-render nang tama sa browser.

    Sa pamamagitan ng paraan, ang array_flip() function ay nagpapahintulot sa iyo na i-convert ang teksto sa HTML sa kabaligtaran na direksyon at ibalik ang orihinal na teksto. Ipagpalagay na sa halip na i-print ang resulta ng strtr() sa nakaraang halimbawa, itinalaga namin ito sa $translated string variable.

    Sa sumusunod na halimbawa, ang orihinal na teksto ay naibalik ng array_flip() function:

    $translate = array_flip($translate); $translated_string - "La pasta é il piatto piú amato in Italia"; $original_string = strtr($translated_string, $translate); // $original_string = "La pasta e il piatto piu amato in Italia";

    strtr()

    Ang strtr() function ay nagsasalin ng string, ibig sabihin, pinapalitan nito ang lahat ng character sa source string ng mga kaukulang character sa destination string. Ang strtr() function syntax ay:

    string strtr (string string, string source, string destination)

    Kung ang pinagmulan at patutunguhan na mga string ay magkaiba ang haba, ang mahabang string ay puputulin upang magkasya sa maikling string.

    Mayroong alternatibong syntax para sa pagtawag sa strtr() na may dalawang parameter; sa kasong ito, ang pangalawang parameter ay naglalaman ng isang associative array na ang mga susi ay tumutugma sa mga substring na pinapalitan, at ang mga halaga ay tumutugma sa mga pinapalitang substrings. Pinapalitan ng sumusunod na halimbawa ang mga HTML na tag ng mga konstruksyon na tulad ng XML:

    " => "

    ", "" => "

    "); $string = "

    Ngayon Sa PHP-Powered News

    "; print strtr($string, $source); // Ini-print ang string " Ngayon sa PHP-Powered News" ?>

    I-convert ang HTML sa Plain Text

    Minsan kailangan mong i-convert ang isang HTML file sa plain text. Ang mga function na inilarawan sa ibaba ay makakatulong sa iyo sa gawaing ito.

    strip_tags()

    Tinatanggal ng function na strip_tags() ang lahat ng HTML at PHP tag mula sa isang string, nag-iiwan lamang ng text dito. Ang strip_tags() function syntax ay:

    string strip_tags (string string [, string allowed_terri])

    Nagbibigay-daan sa iyo ang opsyonal na parameter na allowed_tags na tumukoy ng mga tag na dapat laktawan sa panahon ng proseso ng pagtanggal.

    Nasa ibaba ang isang halimbawa ng pag-alis ng lahat ng HTML tags mula sa isang string gamit ang strip_tags():

    $user_input = "Ako lang pag-ibig PHP at gourment mga recipe!"; $stripped_input = strip_tags($user_input); // $stripped_input = "Mahilig lang ako sa PHP at mga gourmet recipe!";

    Ang sumusunod na halimbawa ay nag-aalis ng hindi lahat, ngunit ang ilang mga tag lamang:

    $input = "Ako pag-ibig sa kumain ka na!!"; $strip_input = strip_tags ($user_input, " "); // $strip_input = "Gusto ko kumain ka na!!";

    Ang pag-alis ng mga tag mula sa teksto ay ginagawa din ng fgetss() function.

    get_meta_tags()

    Bagama't ang function na get_meta_tags() ay hindi direktang nauugnay sa pagbabago ng teksto, ito ay isang napaka-kapaki-pakinabang na function na nagkakahalaga ng pagbanggit. Get_meta_tags() function syntax:

    array get_meta_tags (string file_name/URL [, int include_path])

    Ang get_meta_tags() function ay idinisenyo upang maghanap ng HTML file para sa mga tag ng META.

    Ang mga META tag ay naglalaman ng impormasyon tungkol sa isang page, na pangunahing ginagamit ng mga search engine. Ang mga tag na ito ay nasa loob ng isang pares ng mga tag... . Ang paggamit ng mga META tag ay ipinapakita sa sumusunod na snippet (tawagin natin itong example.html dahil ito ay gagamitin sa Listing 8.2): PHP Recipes Ang get_meta_tags() function ay naghahanap sa ulo ng dokumento para sa mga tag na nagsisimula sa salitang META at nag-iimbak ng mga pangalan ng tag at mga nilalaman ng mga ito sa isang magkakaugnay na hanay. Ipinapakita ng Listing 8.2 ang function na ito na inilapat sa example.html file. Listahan 8.2. Pag-extract ng mga META tag mula sa isang HTML file gamit ang get_meta_tags()

    $meta_tags = get_meta_tags("example.html"): // Ang $meta_tags variable ay naglalaman ng array na may sumusunod na impormasyon: // $meta_tags["keywords"] = "PHP, code, recipes, web" // $meta_tags[ "description" ] = "PHP Information" // $meta_tags["author"] = "KDG";

    Isang kawili-wiling detalye: Ang data ng tag ng META ay maaaring makuha hindi lamang mula sa mga file na matatagpuan sa server, kundi pati na rin sa iba pang mga URL.

    I-convert ang isang string sa upper at lower case

    Mayroong apat na function sa PHP na idinisenyo upang baguhin ang case ng isang string:

    strtolower()

    Kino-convert ng strtolower() function ang lahat ng alphabetic na character sa isang string sa lowercase. Ang strtolower() function syntax ay:

    string strtolower(string string)

    Ang mga hindi alphabetic na character ay hindi binabago ng function. Ang pag-convert ng string sa lowercase gamit ang strtolower() function ay ipinapakita sa sumusunod na halimbawa:

    $sentence = "Ang COOKING at PROGRAMMING PHP ang DALAWANG paborito ko!"; $sentence = strtolower($sentence); // Pagkatapos ng function call, ang $sentence ay naglalaman ng string // "cooking and programming php are my two favorite!"

    strtoupper()

    Maaaring i-convert ang mga string hindi lamang sa maliit na titik, kundi pati na rin sa malalaking titik. Ang conversion ay ginagawa ng strtoupper() function, na mayroong sumusunod na syntax:

    string strtoupper (string string)

    Ang mga hindi alphabetic na character ay hindi binabago ng function. Ang pag-convert ng string sa uppercase gamit ang strtoupper() function ay ipinapakita sa sumusunod na halimbawa:

    $sentence = "pagluluto at pagprograma ng PHP ang dalawa kong paborito!"; $sentence = strtoupper($sentence); // Pagkatapos ng function call, ang $sentence ay naglalaman ng string // "PABORITO KO ANG PAGLUTO AT PAGPROGRAMME NG PHP!"

    ucfirst()

    Kino-convert ng ucfirst() function ang unang character ng isang string sa uppercase, basta ito ay alphabetic character. ucfirst() function syntax:

    string ucfirst (string string)

    Ang mga hindi alphabetic na character ay hindi binabago ng function. Ang conversion ng unang character ng isang string ng ucfirst() function ay ipinapakita sa sumusunod na halimbawa:

    &sentence = "pagluluto at pagprograma ng PHP ang dalawa kong paborito!"; $pangungusap = ucfirst($pangungusap); // Pagkatapos ng function call, ang $sentence ay naglalaman ng string // "Ang pagluluto at pagprograma ng PHP ang dalawa kong paborito!"

    ucwords()

    Kino-convert ng ucwords() function ang unang titik ng bawat salita sa isang string sa uppercase. Syntax ng ucwords() function:

    string ucwords (string string")

    Ang mga hindi alphabetic na character ay hindi binabago ng function. Ang "salita" ay tinukoy bilang isang pagkakasunud-sunod ng mga character na pinaghihiwalay mula sa iba pang mga elemento ng string sa pamamagitan ng mga puwang. Ang sumusunod na halimbawa ay nagpapakita kung paano kino-convert ng ucwords() ang mga unang character ng mga salita:

    $sentence = "pagluluto at pagprograma ng PHP ang dalawa kong paborito!"; $pangungusap = ucwords($pangungusap); // Pagkatapos ng function call, $sentence ay naglalaman ng string // "Cooking And Programming PHP Are My Two Favorite!"

    strhr()

    strrchr("string", "o") - Hinahanap ang huling paglitaw ng isang substring

    Kung hindi mahanap ang substring, magbabalik ng FALSE.

    Hindi tulad ng strchr(), kung ang search string ay binubuo ng higit sa isang character, ang unang character lang ang gagamitin.

    Kung ang pangalawang parameter ay hindi isang string, ito ay na-cast sa isang integer at itinuturing bilang isang code ng character.

    // kunin ang huling direktoryo mula sa $PATH $dir = substr(strrchr($PATH, ":"), 1); // get everything after the last line break $text = "Line 1\nLine 2\nLine 3"; $last = substr(strrchr($text, 10), 1);

    highlight_string()

    highlight_string - highlight string syntax.

    mixed highlight_string (string str [, bool return])

    Ang highlight_string() function ay naglalabas ng syntax-colored na bersyon ng str gamit ang mga kulay na tinukoy sa built-in na syntax highlight ng PHP.

    Kung ang pangalawang parameter ng pagbabalik ay TRUE, ibabalik ng highlight_string() ang naka-highlight na bersyon ng code bilang isang string sa halip na i-print ito. Kung ang pangalawang parameter ay hindi TRUE, ang highlight_string() ay magbabalik ng TRUE sa tagumpay, FALSE sa pagkabigo.

    Tandaan: 1. naging available ang return parameter simula sa PHP 4.2.0. Bago ito gumana bilang default, i.e. MALI.
    2. Tinutukoy ng Highlight_String() function ang PHP code sa pamamagitan ng mga tag. show_source()- kasingkahulugan highlight_file(). Upang baguhin ang default na kulay ng highlight, gamitin ang sumusunod na mga direktiba ng PHP:

    Highlight.bg #FFFFFF highlight.comment #FF8000 highlight.default #0000BB highlight.html #000000 highlight.keyword #007700 highlight.string #DD0000 sa .htaccess: php_flag highlight.bg #FFFFFF sa PHP: if(@ini_get(" .bg")=="") ...

    addslashes()

    - Tinatakasan ang mga espesyal na character sa isang string

    Nagbabalik ng string na may backslash (\) na idinagdag bago ang bawat espesyal na character, halimbawa para sa paggamit sa ibang pagkakataon ng string na ito sa isang query sa database.

    Ang iisang quote ("), double quote ("), backslash (\) at NUL (NULL byte) ay na-escape.

    $str = "O"reilly ba ang pangalan mo?"; // outputs: O\"reilly ba ang pangalan mo? echo addslashes($str);

    stripslash

    - Tinatanggal ang mga tumatakas na character na ginawa ng addslashes() function Tinatanggal ang mga escaping backslashes. (Ang \" ay na-convert sa ", atbp.). Ang double backslashes (\\) ay kino-convert sa single backslashes (\).

    wordwrap()

    Binabalot ang isang linya para sa isang naibigay na bilang ng mga character gamit ang isang line break // Gamit ang wordwrap(). function cite($ourText, $maxlen=60, $prefix="> ") ($st = wordwrap($ourText, $maxlen-strlen($prefix), "\n"); $st = $prefix.str_replace( "\n", "\n$prefix", $st return $st echo cite("Ang unang Matrix na idinisenyo ko ay natural na perpekto, ito ay isang gawa ng sining - walang kapintasan, kahanga-hanga. Isang tagumpay na katumbas lamang ng ang napakalaking kabiguan nito ay maliwanag sa akin ngayon bilang resulta ng di-kasakdalan na likas sa bawat tao kabiguan.", 20);

    > Ang unang Matrix I > dinisenyo ay medyo > natural > perpekto, ito ay isang > gawa ng sining - > walang kamali-mali, kahanga-hanga. > Isang tagumpay > na katumbas lamang ng > napakalaking > kabiguan nito. Ang > hindi maiiwasan > ng kapahamakan nito ay > maliwanag sa akin ngayon > bilang bunga > ng > di-kasakdalan > likas sa bawat > tao. , > I > redesigned it > based on your > history to more > exact reflect > the varying > grotesqueries of > your nature. > Gayunpaman, ako ay > muli > nabigo sa > kabiguan.


    Magbasa pa: Object programming sa PHP
    .

    haba sa mga character (7)

    => string(141) ay nangangahulugang $message ay isang array, kaya dapat mong gawin ang strlen($message)< 141 ...

    Mayroon akong string na 141 character ang haba. Gamit ang sumusunod na code, mayroon akong if statement na magbabalik ng mensahe kung ang string ay mas malaki o mas mababa sa 140.

    Libxml_use_internal_errors(TRUE); $dom = bagong DOMDocument(); $dom->loadHTMLFile($source); $xml = simplexml_import_dom($dom); libxml_use_internal_errors(FALSE); $message = $xml->xpath("//div[@class="contest"]"); kung (strlen($message)< 141) { echo "There Are No Contests."; } elseif(strlen($message) >142) ( echo "May Isang Aktibong Paligsahan."; )

    Gumamit ako ng var_dump sa $message at ipinapakita nito na string => string(141) iyon ang aking problema. Kapag pinalitan ko ang mga numero para sa if statement sa<130 и>131, ibinabalik pa rin nito ang 1st message kahit na mas malaki ang linya sa 131. Kahit anong numero ang gamitin ko na mas mababa sa 141, palagi akong nakakakuha ng "No contest". bumalik sa akin.

    => string(141) ay nangangahulugan na ang $message ay isang array, hindi isang string, at ang $message ay isang string na 141 character ang haba

    Ang xpath ay hindi nagbabalik ng isang string. Nagbabalik ito ng array na may mga elemento ng xml na maaaring ipadala sa isang string.

    If (count($message)) ( if (strlen((string)$message)< 141) { echo "There Are No Contests."; } else if(strlen((string)$message) >142) ( echo "May Isang Aktibong Paligsahan."; ) )

    subukan ang pangkalahatang syntax sa halip:

    Kung (strlen($message)<140) { echo "less than 140"; } else if (strlen($message)>140) ( echo "higit sa 140"; ) iba pa (echo "eksaktong 140"; )

    Dahil palaging bumabalik ang $xml->xpath array , naghihintay si strlen linya .

    Nagkaroon ako ng mga problema dito at sa wakas ay nagpasya na lumikha ng sarili kong solusyon. Nang hindi gumagamit ng regular na expression engine:

    Ang function ay naglalaman ng($text, $word) ($found = false; $spaceArray = explode(" ", $text); $nonBreakingSpaceArray = explode(chr(160), $text); kung (in_array($word, $spaceArray ) ||. in_array($word, $nonBreakingSpaceArray)) ( $found = true; ) ibalik ang $found )

    Maaari mong mapansin na ang mga nakaraang solusyon ay hindi ang sagot sa paggamit ng isang salita bilang prefix para sa isa pa. Upang gamitin ang iyong halimbawa:

    $a = "Kamusta ka?"; $b = "isang palda na sumisikat mula sa baywang"; $c = "ay";

    Sa mga halimbawa sa itaas, parehong $a at $b ay naglalaman ng $c , ngunit maaaring gusto mong sabihin sa iyo ng iyong function na ang $a lang ang naglalaman ng $c .