Rezultate 1 la 8 din 8

Subiect: Functie php SEF urls

  1. #1
    Avatarul lui Popescu Marian
    Popescu Marian este deconectat Ambasador
    Reputatie:
    45
    Data înscrierii
    18th April 2007
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    983
    Putere Rep
    45


    Implicit Functie php SEF urls

    Salut, folosesc functia de mai jos pt a-mi transforma url-urile in functie de titlul paginii insa am o problema cand fraza se termina cu semne de punctuatie gen: "Cel mai tare!". In loc de "!" imi pune "-"... /cel-mai-tare-.html

    Cod PHP:
    function urlizare($var) {
        
    $var ereg_replace("[^A-Za-z0-9]"" "$var);
        
    $var str_replace(" ""-"$var);        
        
    $var str_replace(" - ""-"$var);
        
    $var str_replace("--""-"$var);
        
    $var str_replace("--""-"$var);
        
    $var strtolower($var);
        return 
    $var

  2. #2
    Avatarul lui thefan
    thefan este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    30th December 2006
    Locaţie
    Oradea
    Vârstă
    48
    Posturi
    1.433
    Putere Rep
    37


    Implicit

    Cea mai simpla (nu neaparat cea mai buna) solutie ar fi dupa mine sa transformi ! si . in "":

    $var = str_replace("!", "", $var);
    $var = str_replace(".", "", $var);
    $var = str_replace("?", "", $var);

    Asa babeste... sunt sigur ca ceilalti iti vor oferi o solutie mult mai profesionala dar merge si asta ca solutie de criza... (zic eu)
    Producător de content SEO în engleză. SEO de voie, de nevoie.

  3. #3
    Avatarul lui beeuser
    beeuser este deconectat Membru SeoPedia
    Reputatie:
    33
    Data înscrierii
    6th July 2007
    Vârstă
    45
    Posturi
    66
    Putere Rep
    33


    Implicit

    Pai sa fie mai general, dupa ce se fac inlocuirile de caracter, si rezulta "cel-mai-tare-" de exemplu, se poate verifica daca prima si ultima litera sunt diferite de [a-z] sau [0-9], si atunci se elimina.

    Ai putea face ceva de genul

    Sa zicem ca $rezultat = 'cel-mai-tare-';

    $prima_litera = substr( $rezultat, 0, 1);
    $ultima_liter = substr( $rezultat, -1, 1 );

    if( !ereg("^A-Za-z0-9]", $ultima_litera ) ) $rezultat = substr($rezultat,0,-1);
    if( !ereg("^A-Za-z0-9]", $prima_litera ) ) $rezultat = substr($rezultat,1);

    Cam asta ar fi ideea.

  4. #4
    Avatarul lui haos
    haos este deconectat Ambasador
    Reputatie:
    61
    Data înscrierii
    19th February 2008
    Locaţie
    Craiova
    Posturi
    2.239
    Putere Rep
    61


    Implicit

    trim(-) oare? imi dau si eu cu parerea
    Citeste primul meu curs SEO - principii de baza. Vezi oferta mea de advertoriale PR5.

  5. #5
    Avatarul lui Gabriel Puscuta
    Gabriel Puscuta este deconectat Ambasador
    Reputatie:
    37
    Data înscrierii
    7th September 2006
    Locaţie
    Sibiu
    Posturi
    786
    Putere Rep
    37


    Implicit

    O metoda mai simpla ar fi asa:
    Cod PHP:
    function rewrite($string){
        
    $caractere = array(
            
    ' ' => '-',
            
    ' - ' => '-',
            
    '--' => '-',
            
    '!' => '',
            
    '.' => '',
            
    ',' => '',
            
    '?' => '',
            
    "'" => ''
        
    );
        
        foreach(
    $caractere as $k => $v){
            
    $string str_replace($k,$v,$string);
        }
        return 
    $string;

    Daca vrei ceva mai mult decat atat spune. Bafta.

    LE:
    @haos: trim nu face altceva decat sa elimine spatiile albe (si alte caractere) dintr-un string, si anume, de la inceput si la sfarsit.
    Ultima modificare făcută de Gabriel Puscuta; 30th April 2009 la 23:16.

  6. #6
    Avatarul lui Chaos
    Chaos este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    3rd April 2006
    Locaţie
    Cluj-Napoca
    Vârstă
    42
    Posturi
    389
    Putere Rep
    35


    Implicit

    Poate te ajuta asa ceva:
    Cod PHP:
    <?php
        $testString 
    "Cel mai tare!";
        
    $result str_replace(" ","-",trim(preg_replace("/[^a-zA-Z0-9]+/"," ",trim(strtolower($testString))))) . ".html";
        echo 
    $result;
    ?>

  7. #7
    Avatarul lui nex
    nex
    nex este deconectat Membru SeoPedia
    Reputatie:
    30
    Data înscrierii
    16th April 2009
    Locaţie
    Bucuresti
    Vârstă
    39
    Posturi
    50
    Putere Rep
    30


    Implicit incearca

    uite o functie pe care o folosesc mereu:

    Cod PHP:
    function clean_url($text)
    {
    $text=strtolower($text);
    $code_entities_match = array( '&quot;' ,'!' ,'@' ,'#' ,'$' ,'%' ,'^' ,'&' ,'*' ,'(' ,')' ,'+' ,'{' ,'}' ,'|' ,':' ,'"' ,'<' ,'>' ,'?' ,'[' ,']' ,'' ,';' ,"'" ,',' ,'.' ,'_' ,'/' ,'*' ,'+' ,'~' ,'`' ,'=' ,' ' ,'---' ,'--','--');
    $code_entities_replace = array('' ,'-' ,'-' ,'' ,'' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'' ,'-' ,'' ,'-' ,'-' ,'' ,'' ,'' ,'' ,'' ,'-' ,'-' ,'-','-');
    $text str_replace($code_entities_match$code_entities_replace$text);
    return 
    $text;


  8. #8
    Avatarul lui danielbuca
    danielbuca este deconectat Ambasador
    Reputatie:
    38
    Data înscrierii
    13th August 2006
    Locaţie
    Bucharest
    Vârstă
    47
    Posturi
    431
    Putere Rep
    38


    1 out of 1 members found this post helpful.

    Implicit

    Hai sa ma bag si eu in seama.
    In toate cazurile de mai sus putem ajunge in sitatii neplacute.
    De exemplu: nu pot da replace la '!' cu '' pentru ca '!' poate fi la mijlocul textului.
    Deasemenea, in alte cazuri, putem ajunge sa avem '---text-de-url---' si un singur replace nu ne ajuta.
    Cea ma buna solutie de trim ramane trim($str, $chr) si face trim global la toate instantele $chr .

    Eu folosesc o functie cu o singura linie de cod:

    Cod PHP:
    function doStringToRewriteUrl ($sString){
        return 
    strtolower(trim(preg_replace("/[^0-9a-zA-Z]+/""_"$sString),"_"));

    O ultima observatie: eu generez stringul pentru mod_rewrite la adaugarea unei inregistrari in baza de date si nu la afisare din 2 motive:
    1. o operatie in minus la afisare
    2. il generez in timp ce se completeaza titlul articolului si userul il poate edita daca doreste.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. functie replace
    De odiv în forumul Client side
    Răspunsuri: 10
    Ultimul Post: 10th December 2009, 13:11
  2. SEO Friendly URLs
    De marius4896 în forumul Google
    Răspunsuri: 9
    Ultimul Post: 2nd December 2009, 04:02
  3. Functie securizare php
    De Popescu Marian în forumul Server side
    Răspunsuri: 7
    Ultimul Post: 22nd May 2009, 16:55
  4. Afisare continut in functie de id
    De Popescu Marian în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 2nd May 2009, 16:40
  5. PR toolbar in functie de locatie
    De rth în forumul Google
    Răspunsuri: 4
    Ultimul Post: 8th December 2006, 16:07

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •