blogas.labanauskas.lt

don't fuck with me, don't fuck with me

Labas, Vardeni pavardeni [php]

Kažkurią rudens dieną prireikė skripto, kuris kreiptųsi į žmogų teisingai, pvz: “Labas, Vardeni Pavardeni”, o ne – “Labas, Vardenis Pavardenis”. Taigi bandžiau pasirašyt tam f-ją. Gal kada kam nors prireiks.

function vardo_kreipinys ( $kreipinys = '' )
{
    $vyr_galunes = array ("a", "as", "us", "ys", "is");
    $vyr_galunes_replace = array ( "a", "ai", "au", "y", "i" );

    $kreipinys = trim( $kreipinys );

    $kreipinys = explode ( ' ', $kreipinys );

    $vardas_return = '';

    foreach ($kreipinys as $vardas) {

        if ( strrchr( $vardas, 'a' ) == 'a' || strrchr( $vardas, 'e' ) == 'e' ) {
            $vardas_return .= $vardas;
        }
        elseif ( strrchr( $vardas, 'ė' ) == 'ė' ) {
            $vardas = str_ireplace( strrchr( $vardas, 'ė' ), 'e', $vardas );
            $vardas_return .= ' '. $vardas;
        }
        else {
            $galune = substr ( $vardas, -2, 2 );

            if ( in_array( $galune, $vyr_galunes ) ) {
                $vardas_be_gal = str_ireplace( strrchr( $vardas, $galune ), '', $vardas );
                $vardo_kreipinys = str_ireplace( $vyr_galunes, $vyr_galunes_replace, $galune );
                $vardas_return .= ' '. $vardas_be_gal . $vardo_kreipinys;
            }
            else {
                $vardas_return .= ' '. $vardas;
            }
        }

    }
    return $vardas_return;
}