• Bannato User Attivo

    Su stringhe: togliere ID iniziale e .jpg finale da una stringa

    Nel mio database salvo i nomi delle foto con questo schema:
    ID-nome-foto-resa-friendly.jpg

    Sto riscrivendo gli url per le pagine che mostrano tali foto.
    Il mio obiettivo è di far apparire una url di questo tipo:
    blabla/nome-foto-resa-friendly.html

    Quindi devo eliminare i numeretti iniziali e devo eliminare il .jpg finale.

    Tipici url delle foto salvate sono:
    6084-bellunese-vecchia-marmolada.jpg --> blabla/bellunese-vecchia-marmolada.html
    756-curve-mondiali.jpg --> blabla/curve-mondiali.html
    777-ridimensiona-disimposio-bianco-036.jpg --> blabla/ridimensiona-disimposio-bianco.html

    Come posso impostare la risoluzione di questo bel problema?


  • User Attivo

    @fabioski said:

    Nel mio database salvo i nomi delle foto con questo schema:
    ID-nome-foto-resa-friendly.jpg

    Sto riscrivendo gli url per le pagine che mostrano tali foto.
    Il mio obiettivo è di far apparire una url di questo tipo:
    blabla/nome-foto-resa-friendly.html

    Quindi devo eliminare i numeretti iniziali e devo eliminare il .jpg finale.

    Tipici url delle foto salvate sono:
    6084-bellunese-vecchia-marmolada.jpg --> blabla/bellunese-vecchia-marmolada.html
    756-curve-mondiali.jpg --> blabla/curve-mondiali.html
    777-ridimensiona-disimposio-bianco-036.jpg --> blabla/ridimensiona-disimposio-bianco.html

    Come posso impostare la risoluzione di questo bel problema?

    Eccoti una soluzione sql pura:

    
    select
          concat('blabla/', replace(
                  lower(
                        right(
                              replace(
                                      [tuocampo], substring_index([tuocampo], '-', 1), ''
                                      ),length(replace([tuocampo], substring_index([tuocampo], '-', 1
                              ), ''))-1)
                       )
                  , '.jpg', ''
                  ), '.html')
    from
          [tuatabella];
    
    

    HTH


  • Super User

    Con php invece non è necessario agire su ognuna delle url.
    Supponiamo che gli indirizzi siano contenuti nella variabile $url (ricavata dalla query al db):
    [php]<?php
    echo "blabla/".substr(strstr(str_ireplace(".jpg",".html",$url),"-"),1);
    ?>
    [/php]L'ho provato e funziona :)!
    ciao!


  • Bannato User Attivo

    Il formato finale potrebbe anche essere gif o png...
    E gli ID iniziali partono da 1 e vanno su...


  • Super User

    Il formato finale potrebbe anche essere gif o png...
    E gli ID iniziali partono da 1 e vanno su...[php]<?php
    echo "blabla/".substr(strstr(str_ireplace(".png",".html",str_ireplace(".gif",".html",(str_ireplace(".jpg",".html",$url))),"-"),1);
    ?>[/php]


  • Super User

    Il formato finale potrebbe anche essere gif o png...
    E gli ID iniziali partono da 1 e vanno su...[php]<?
    $url=str_ireplace(".png",".html",$url);
    $url=str_ireplace(".gif",".html",$url);
    $url=str_ireplace(".jpg",".html",$url);
    echo "blabla/".substr(strstr($url,"-"),1);?>[/php]


  • Bannato User Attivo

    Bene, allora con la soluzione di probid risolvo il problema dell'estensione finale (e mi meraviglio di non averci pensato io... :D)

    Ancora non mi convince il come fare per eliminare i numeri dell'ID prima del primo "-"
    1234-foto-abc-abc.... --> foto-abc-abc...

    Avete qualche brillante intuizione come successo per l'estensione?
    Grazie!


  • Super User

    La mia funzione li elimina,testata 🙂


  • Bannato User Attivo

    @probid said:

    Con php invece non è necessario agire su ognuna delle url.
    Supponiamo che gli indirizzi siano contenuti nella variabile $url (ricavata dalla query al db):
    [php]<?php
    echo "blabla/".substr(strstr(str_ireplace(".jpg",".html",$url),"-"),1);
    ?>
    [/php]L'ho provato e funziona :)!
    ciao!
    Ho provato mettendo:
    $url = substr(strstr(str_ireplace(".jpg",".html",$results[url_upload]),"-"),1);
    Mi da questo errore...
    Fatal error: Call to undefined function: str_ireplace() in /home/vhosts/blabla/var/www/html/resources/uploads.php on line 233

    che è la riga che ho riportato


  • Super User

    Strano...probabilmente usi una versione vecchia di PHP...di che versione si tratta?


  • Bannato User Attivo

    Non so la versione.
    Ho usato questo codice e sembra che mi vada!!!

    $url = substr(strstr(str_replace(".jpg",".html",$results[url_upload]),"-"),1);
    $url=str_replace(".png",".html",$url);
    $url=str_replace(".gif",".html",$url);
    $url=str_replace(".jpeg",".html",$url);

    GRAZIEEEEEEEEE


  • Super User

    @fabioski said:

    Non so la versione.
    :?:?

    Bene cmq,ciao e a presto 😉