{"id":230591,"date":"2022-12-13T14:58:00","date_gmt":"2022-12-13T11:58:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=230591"},"modified":"2022-12-13T15:01:54","modified_gmt":"2022-12-13T12:01:54","slug":"kuidas-php-s-teksti-holpsalt-kaerpida","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-php-s-teksti-holpsalt-kaerpida\/","title":{"rendered":"Kuidas PHP-s teksti h\u00f5lpsalt k\u00e4rpida"},"content":{"rendered":"\n<p>Kui k\u00e4sitlete WordPressi eranditult ajaveebirakendusena v\u00f5i isegi vabamas m\u00f5ttes sisuhalduss\u00fcsteemina, siis olete t\u00f5en\u00e4oliselt harjunud kasutama redaktorit v\u00f5i v\u00e4ljav\u00f5ttev\u00e4lja, et kirjutada tiiserit ja seej\u00e4rel lisada linki Loe edasi<strong>.<\/strong><\/p>\n<h3>WordPress veebirakendustele (taas)<\/h3>\n<p>Neile, kes on seda saiti m\u00f5nda aega lugenud, huvitab mind konkreetselt WordPressi kasutamine veebirakenduste arendamise alusena (vt ka <a href=\"https:\/\/tommcfarlin.com\/web-applications-with-wordpress\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seda<\/a>, <strong><a href=\"https:\/\/tommcfarlin.com\/wordpress-for-web-application-development\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seda<\/a><\/strong>, <strong><a href=\"https:\/\/tommcfarlin.com\/web-application-foundation\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">seda<\/a><\/strong> ja <strong><a href=\"https:\/\/wordpress.mediadoma.com\/et\/objektorienteeritud-viis-mudelite-ja-veebirakendustega-toeoetamiseks\/\" title=\"seda\">seda<\/a><\/strong> ).<\/p>\n<p>Selle postituse tegemise ajal on see umbes kuus aastat vana artikkel.<\/p>\n<p>Nii et m\u00f5nikord v\u00f5ib esiotsas renderdatav sisu p\u00e4rineda kolmanda osapoole allikast.<\/p>\n<h3>Tagasi sisu juurde<\/h3>\n<p>See t\u00e4hendab, et rakendus t\u00f6\u00f6tab j\u00e4rgmiselt:<\/p>\n<ol>\n<li>v\u00f5tke \u00fchendust kolmanda osapoole API-ga,<\/li>\n<li>importida k\u00f5nest andmeid ja vajadusel anal\u00fc\u00fcsida,<\/li>\n<li>kirjutage see andmebaasi,<\/li>\n<li>esitama teabe n\u00f5udmisel esik\u00fcljel.<\/li>\n<\/ol>\n<p>\u00dclaltoodud sammude vahele v\u00f5ib minna palju, kuid peamine, mida selles postituses jagada tahan, on t\u00f5hus viis h\u00f5lpsaks teksti k\u00e4rpimiseks, kasutades esiotsas renderdamiseks PHP-d.<\/p>\n<p>See on kasulik tiiseri pakkumiseks, kolmandate osapoolte saitidele linkimiseks ja muuks ilma sisu k\u00e4sitsi kirjutamise v\u00f5i muutmiseta.<\/p>\n<p>Jagatava funktsiooni n\u00e4idise andmiseks on kasulik esitada m\u00f5ned n\u00f5uded. Need on selle postituse jaoks meelevaldsed, kuid teostus peaks olema piisavalt konkreetne, et saaksite selle probleemideta postitusse visata.<\/p>\n<p>Oletame:<\/p>\n<ul>\n<li>t\u00f5mbame teksti kolmanda osapoole API-st,<\/li>\n<li>andmed on salvestatud kuskil andmebaasis,<\/li>\n<li>andmed on lihttekst (struktuuris ei ole m\u00e4rgistusi ega muud t\u00fc\u00fcpi veebip\u00f5hiseid \u00fcksusi),<\/li>\n<li>vajame funktsiooni, mis v\u00f5tab teksti vastu, ja pikkust teksti k\u00e4rpimiseks.<\/li>\n<\/ul>\n<p>Arvestades neid n\u00f5udeid, saame seadistada funktsiooni teksti ja argumentide pikkuse vastuv\u00f5tmiseks. Kui tekst on m\u00e4\u00e4ratud pikkusest v\u00e4iksem v\u00f5i sellega v\u00f5rdne, pole midagi teha; vastasel juhul saame teksti k\u00e4rpida m\u00e4\u00e4ratud pikkuseni ja lisada l\u00f5pu ellipsid.<\/p>\n<p><strong><a href=\"https:\/\/gist.github.com\/tommcfarlin\/97c336e3e7246c9d5f6d46684ff1e6e9#file-00-truncate-text-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Siin on kood:<\/a><\/strong><\/p>\n<pre><code>&lt;?php\n\n\/**\n * Truncates the specified text to the specified length to the last whole word and\n * adds ellipses to the end of the truncated string.\n * \n * @param string $text The text to truncate.\n * @param int $length The maximum allowed length of the text.\n * @return string The text if it's less than the length of the specified length or the text truncated to the specified length.\n *\/\npublic function truncate($text, $length)\n{\n    if ($length &gt;= strlen($text)) {\n      return $text;\n    }\n\n  return preg_replace(\n        \"\/^(.{1,$length})(s.*|$)\/s\",\n        '1...',\n        $text\n    );\n}<\/code><\/pre>\n<p>Selle rakendused WordPressi kontekstis v\u00f5ivad tuleneda kohandatud tabelites, postituse metaandmetes, postitustabelis v\u00f5i p\u00f5him\u00f5tteliselt mis tahes kohas, kuhu toortekst on salvestatud ja mida soovite esiotsas renderdada, salvestatud andmete lugemisest. .<\/p>\n<p>Kui tekstis peaks olema muud sisu, n\u00e4iteks HTML-i v\u00f5i muid \u00fcksusi, v\u00f5ib olla vaja seda teha. Kui see on WordPressis, on enne teksti k\u00e4rpimist nende andmete t\u00f6\u00f6tlemiseks filtreid ja muid vorme, kuid see ei ole PHP-s teksti h\u00f5lpsa k\u00e4rpimise m\u00f5te, eks?<\/p>\n<p>Nii et kasutage seda v\u00e4hemalt ainult teksti jaoks ja maksimaalselt tehke tekstis m\u00f6\u00f6ndusi muud t\u00fc\u00fcpi sisu jaoks, enne kui sisestate selle jaotisesse <a href=\"https:\/\/php.net\/manual\/en\/function.preg-replace.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">preg_replace<\/a>, ja peaksite olema valmis.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Peamine asi, mida selles postituses jagada tahan, on t\u00f5hus viis teksti h\u00f5lpsaks k\u00e4rpimiseks, kasutades esiotsas renderdamiseks PHP-d.<\/p>\n","protected":false},"author":1,"featured_media":236152,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,802],"tags":[1165],"class_list":["post-230591","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-php-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230591","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=230591"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/230591\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/236152"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=230591"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=230591"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=230591"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}