Keresés

Új hozzászólás Aktív témák

  • varydave

    tag

    válasz Speeedfire #9692 üzenetére

    Én még mindig inkább a spec. karakterek "kivételét" preferálom. Ha netán valakinek szüksége lenne ilyesmire:

    /**
    *
    * $url = new url("helló világ ez az első szép url-em");
    * var_dump($url->_output);
    *
    * string(34) "hello-vilag-ez-az-elso-szep-url-em"
    */

    class url {

    public $_output;

    private $_str;
    private $_separator;

    /**
    *
    * @param string $str - nyers url
    * @param string $separator - szoelvalaszto karakter
    */
    public function __construct($str, $separator = "dash") {
    $this->_str = $str;
    $this->_separator = $separator;

    $this->url_title();
    }

    /**
    * szep url generalas
    * @return string
    */
    protected function url_title() {

    if ($this->_separator == 'dash')
    {
    $search = '_';
    $replace = '-';
    } else {
    $search = '-';
    $replace = '_';
    }

    $str = strtolower($this->_str);
    $before = array( "á", "é", "ő", "ö", "ó", "ú", "ű", "ü", "í" );
    $after = array( "a", "e", "o", "o", "o", "u", "u", "u", "i" );

    $str = str_replace( $before, $after, $str );

    $trans = array(
    '&\#\d+?;' => '',
    '&\S+?;' => '',
    '\s+' => $replace,
    '[^a-z0-9\-\._]' => '',
    $replace . '+' => $replace,
    $replace . '$' => $replace,
    '^' . $replace => $replace,
    '\.+$' => ''
    );

    $str = strip_tags($str);

    foreach ( $trans as $key => $val )
    {
    $str = preg_replace( "#" . $key . "#i", $val, $str );
    }

    return $this->_output = strtolower( trim ( trim ( stripslashes ( $str ) ), $replace ) );

    }

    }

  • Sk8erPeter

    nagyúr

    válasz Speeedfire #9692 üzenetére

    Mi az, hogy "nem lehet" szóköz? :D

    Szerintem egyébként speckó karaktereket azért is érdemes helyettesíteni, mert régebbi böngészőknek parája lehet vele, meg vannak programok, amik az átalakított URL-eket az ékezetek vagy más karakterek mentén "csapják le" (még mai napig), de persze az is igaz, hogy az ékezetes karakterek egyre elfogadottabbak. Itt van egy téma róla: [link]
    Van egy ilyen felvetés még 2009-ből:
    "Considering URLs with accents often tend to end up looking like this :
    http://fr.wikipedia.org/wiki/%C3%89l%C3%A9phant
    ...which is not that nice... I think we'll still be using de-accented URLs for some time.

    Though, things should get better, as accented URLs are now accepted by web browsers, it seems."
    A böngésző átalakítja a címeket - pl. ha ezt böngészed, és kimásolod a címsorból az URL-t, akkor ezt a randaságot kapod meg - DE azt nézem, hogy Google-ben, amennyiben tartalmaz a találatban az URL ékezeteket, akkor tök normálisan látszik az URL (a megfelelő ékezetekkel), szóval SEO szempontjából lehet, hogy még jobb is, ezt nem tudom...

    Mindenesetre a szóköz és ehhez hasonló speckó karakterek (kivétel az ékezeteket, kötőjeleket, alulvonásokat, pluszjelet) biztos, hogy a helyettesítendőek közé tartoznak (szvsz még a pont is, amennyiben nem valós fájl kiterjesztése kezdődik ennek mentén).

Új hozzászólás Aktív témák

Hirdetés