- Home
- Categorie
- Coding e Sistemistica
- Coding
- Su stringhe: togliere ID iniziale e .jpg finale da una stringa
-
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.jpgSto 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.htmlQuindi 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.htmlCome posso impostare la risoluzione di questo bel problema?
-
@fabioski said:
Nel mio database salvo i nomi delle foto con questo schema:
ID-nome-foto-resa-friendly.jpgSto 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.htmlQuindi 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.htmlCome 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
-
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!
-
Il formato finale potrebbe anche essere gif o png...
E gli ID iniziali partono da 1 e vanno su...
-
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]
-
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]
-
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!
-
La mia funzione li elimina,testata
-
@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 233che è la riga che ho riportato
-
Strano...probabilmente usi una versione vecchia di PHP...di che versione si tratta?
-
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
-