{"id":2196,"date":"2014-04-29T21:26:57","date_gmt":"2014-04-29T18:26:57","guid":{"rendered":"http:\/\/9v.lt\/blog\/?p=2196"},"modified":"2022-01-19T08:34:39","modified_gmt":"2022-01-19T06:34:39","slug":"vardo-linksniavimas-su-php","status":"publish","type":"post","link":"https:\/\/9v.lt\/blog\/vardo-linksniavimas-su-php\/","title":{"rendered":"Vardo linksniavimas su PHP"},"content":{"rendered":"<p>Teko pasira\u0161yti kelias funkcijas kad linksniuot\u0173 vard\u0105 ir pavard\u0119 pagal tris linksnius, kad kreipimasis sistemoje atrodyt\u0173 nat\u016bralesnis. \u017demiau pateikti 3 kod\u0173 blokai veikia tik su Lietuvi\u0161kais vardais ir pavard\u0117mis, kiek teko bandyti tai kei\u010dia tinkamai visada jeigu vardas ir pavard\u0117 yra s\u0105moningi :P &#8211; jeigu koki\u0105 klaid\u0105 pasteb\u0117tum\u0117te, pra\u0161au prane\u0161ti komentaruose :)<br \/>\nNesiu a\u0161 kietas PHP programeris tai ir kodas gal bus kiek lievokas, ta\u010diau atitinka mano l\u016bkes\u010dius ir veikia. Good enough :D<br \/>\n<!--more--><br \/>\nVisk\u0105 galima parsisi\u0173sti <a href=\"http:\/\/9v.lt\/projects\/php\/vardo_linksniavimas.zip\" target=\"_blank\" rel=\"noopener\">i\u0161 \u010dia<\/a>.<\/p>\n<p>Kodas naudininko linksniui (kam?):<\/p>\n<pre lang=\"php\">\r\n<?php\r\n\r\n\/*\r\n\tAutorius: Kulverstukas\r\n\tData: 2014.04.15\r\n\tSvetain\u0117: http:\/\/9v.lt ; Evilzone.org ; Programisiai.lt\r\n*\/\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija tikrina ar \u017eodis baigiasi su nurodyta gal\u016bne,\r\n        gra\u017eina TRUE jei taip.\r\n*\/\r\nfunction endsWith($haystack, $needle) {\r\n    return $needle === \"\" || substr($haystack, -strlen($needle)) === $needle;\r\n}\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija priima vard\u0105 arba pavard\u0119 (turi b\u016bti vienas) ir gra\u017eina pakeist\u0105\r\n\t\t\u012f naudininko linksn\u012f (kam?).\r\n\r\n    Pavyzd\u017eiai:\r\n        Drasius Kedys         -> Drasiui Ked\u017eiui\r\n        Dalia Grybauskait\u0117    -> Daliai Grybauskaitei\r\n        Andrius Kubilius      -> Andriui Kubiliui\r\n        Loreta Grau\u017einien\u0117    -> Loretai Grau\u017einienei\r\n        Natalija Bunk\u0117        -> Natalijai Bunkei\r\n*\/\r\nfunction pakeistiVardaNaudininku($str) {\r\n    $rtn = $str;\r\n    $galunes = array(array(\"as\", \"ui\"), array(\"a\", \"ai\"), array(\"\u0117\", \"ei\"), array(\"e\", \"ei\"),\r\n                     array(\"tis\", \"\u010diui\"), array(\"dys\", \"d\u017eiui\"), array(\"is\", \"iui\"),\r\n                     array(\"ys\", \"iui\"), array(\"us\", \"ui\"));\r\n\r\n    for ($i = 0; $i < count($galunes); $i++) {\r\n        if (endsWith($str, $galunes[$i][0])) {\r\n            $rtn = substr($str, 0, strlen($str)-strlen($galunes[$i][0])).$galunes[$i][1];\r\n            break;\r\n        }\r\n    }\r\n\r\n    return $rtn;\r\n}\r\n\r\necho pakeistiVardaNaudininku('Drasius'); echo pakeistiVardaNaudininku(' Kedys'); echo '<br \/>';\r\necho pakeistiVardaNaudininku('Dalia'); echo pakeistiVardaNaudininku(' Grybauskait\u0117'); echo '<br \/>';\r\necho pakeistiVardaNaudininku('Andrius'); echo pakeistiVardaNaudininku(' Kubilius'); echo '<br \/>';\r\necho pakeistiVardaNaudininku('Loreta'); echo pakeistiVardaNaudininku(' Grau\u017einien\u0117'); echo '<br \/>';\r\necho pakeistiVardaNaudininku('Natalija'); echo pakeistiVardaNaudininku(' Bunk\u0117'); echo '<br \/>';\r\n\r\n?>\r\n<\/pre>\n<p>Kodas kilmininko linksniui (ko?):<\/p>\n<pre lang=\"php\">\r\n<?php\r\n\r\n\/*\r\n\tAutorius: Kulverstukas\r\n\tData: 2014.04.15\r\n\tSvetain\u0117: http:\/\/9v.lt ; Evilzone.org ; Programisiai.lt\r\n*\/\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija tikrina ar \u017eodis baigiasi su nurodyta gal\u016bne,\r\n        gra\u017eina TRUE jei taip.\r\n*\/\r\nfunction endsWith($haystack, $needle) {\r\n    return $needle === \"\" || substr($haystack, -strlen($needle)) === $needle;\r\n}\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija priima vard\u0105 arba pavard\u0119 (turi b\u016bti vienas) ir gra\u017eina pakeist\u0105\r\n\t\t\u012f kilmininko linksn\u012f (ko?).\r\n\r\n    Pavyzd\u017eiai:\r\n        Drasius Kedys         -> Drasiaus Ked\u017eio\r\n        Dalia Grybauskait\u0117    -> Dalios Grybauskait\u0117s\r\n        Andrius Kubilius      -> Andriaus Kubiliaus\r\n        Loreta Grau\u017einien\u0117    -> Loretos Grau\u017einien\u0117s\r\n        Natalija Bunk\u0117        -> Natalijos Bunk\u0117s\r\n*\/\r\nfunction pakeistiVardaKilmininku($str) {\r\n    $rtn = $str;\r\n    $galunes = array(array(\"as\", \"o\"), array(\"a\", \"os\"), array(\"\u0117\", \"\u0117s\"), array(\"e\", \"es\"),\r\n                     array(\"tis\", \"\u010dio\"), array(\"dis\", \"d\u017eio\"), array(\"dys\", \"d\u017eio\"), array(\"is\", \"io\"),\r\n                     array(\"ys\", \"io\"), array(\"us\", \"aus\"));\r\n\r\n    for ($i = 0; $i < count($galunes); $i++) {\r\n        if (endsWith($str, $galunes[$i][0])) {\r\n            $rtn = substr($str, 0, strlen($str)-strlen($galunes[$i][0])).$galunes[$i][1];\r\n            break;\r\n        }\r\n    }\r\n\r\n    return $rtn;\r\n}\r\n\r\necho pakeistiVardaKilmininku('Drasius'); echo pakeistiVardaKilmininku(' Kedys'); echo '<br \/>';\r\necho pakeistiVardaKilmininku('Dalia'); echo pakeistiVardaKilmininku(' Grybauskait\u0117'); echo '<br \/>';\r\necho pakeistiVardaKilmininku('Andrius'); echo pakeistiVardaKilmininku(' Kubilius'); echo '<br \/>';\r\necho pakeistiVardaKilmininku('Loreta'); echo pakeistiVardaKilmininku(' Grau\u017einien\u0117'); echo '<br \/>';\r\necho pakeistiVardaKilmininku('Natalija'); echo pakeistiVardaKilmininku(' Bunk\u0117'); echo '<br \/>';\r\n\r\n?>\r\n<\/pre>\n<p>Kodas \u012fnagininko linksniui (kuo?):<\/p>\n<pre lang=\"php\">\r\n<?php\r\n\r\n\/*\r\n\tAutorius: Kulverstukas\r\n\tData: 2014.04.15\r\n\tSvetain\u0117: http:\/\/9v.lt ; Evilzone.org ; Programisiai.lt\r\n*\/\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija tikrina ar \u017eodis baigiasi su nurodyta gal\u016bne,\r\n        gra\u017eina TRUE jei taip.\r\n*\/\r\nfunction endsWith($haystack, $needle) {\r\n    return $needle === \"\" || substr($haystack, -strlen($needle)) === $needle;\r\n}\r\n\r\n\/*\r\n    Apra\u0161ymas:\r\n        Funkcija priima vard\u0105 arba pavard\u0119 (turi b\u016bti vienas) ir gra\u017eina pakeist\u0105\r\n\t\t\u012f \u012fnagininko linksn\u012f (kuo?).\r\n\r\n    Pavyzd\u017eiai:\r\n        Drasius Kedys         -> Drasium Ked\u017eiu\r\n        Dalia Grybauskait\u0117    -> Dalia Grybauskaite\r\n        Andrius Kubilius      -> Andrium Kubilium\r\n        Loreta Grau\u017einien\u0117    -> Loreta Grau\u017einiene\r\n        Natalija Bunk\u0117        -> Natalija Bunke\r\n*\/\r\nfunction pakeistiVardaInagininku($str) {\r\n    $rtn = $str;\r\n    $galunes = array(array(\"as\", \"u\"), array(\"\u0117\", \"e\"), array(\"kis\", \"kiu\"),\r\n                     array(\"tis\", \"\u010diu\"), array(\"dis\", \"d\u017eiu\"), array(\"dys\", \"d\u017eiu\"), array(\"ius\", \"ium\"),\r\n                     array(\"ys\", \"iu\"));\r\n\r\n    for ($i = 0; $i < count($galunes); $i++) {\r\n        if (endsWith($str, $galunes[$i][0])) {\r\n            $rtn = substr($str, 0, strlen($str)-strlen($galunes[$i][0])).$galunes[$i][1];\r\n            break;\r\n        }\r\n    }\r\n\r\n    return $rtn;\r\n}\r\n\r\necho pakeistiVardaInagininku('Drasius'); echo pakeistiVardaInagininku(' Kedys'); echo '<br \/>';\r\necho pakeistiVardaInagininku('Dalia'); echo pakeistiVardaInagininku(' Grybauskait\u0117'); echo '<br \/>';\r\necho pakeistiVardaInagininku('Andrius'); echo pakeistiVardaInagininku(' Kubilius'); echo '<br \/>';\r\necho pakeistiVardaInagininku('Loreta'); echo pakeistiVardaInagininku(' Grau\u017einien\u0117'); echo '<br \/>';\r\necho pakeistiVardaInagininku('Natalija'); echo pakeistiVardaInagininku(' Bunk\u0117'); echo '<br \/>';\r\n\r\n?>\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Teko pasira\u0161yti kelias funkcijas kad linksniuot\u0173 vard\u0105 ir pavard\u0119 pagal tris linksnius, kad kreipimasis sistemoje<\/p>\n","protected":false},"author":2,"featured_media":2199,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,750],"tags":[894,893,895],"class_list":["post-2196","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects","category-software-projects","tag-linksniavimas","tag-php","tag-vardas"],"_links":{"self":[{"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/posts\/2196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/comments?post=2196"}],"version-history":[{"count":0,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/posts\/2196\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/media\/2199"}],"wp:attachment":[{"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/media?parent=2196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/categories?post=2196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/9v.lt\/blog\/wp-json\/wp\/v2\/tags?post=2196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}