Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Espressioni regolari. Come modificare una data stringa?

    Ciao a tutti!

    Ho un piccolo problema. Devo fare in modo che inserendo in un form il codice embed dei video di Youtube, l'altezza e la larghezza dei video sia sempre uguale e stabilita da me.

    Questo è un codice di esempio di Youtube:
    codice:
    <iframe width="560" height="315" src="http://www.youtube.com/embed/oRC6Ru7uXqk" frameborder="0" allowfullscreen></iframe>
    Questo è il codice che sto usando io in base ad un vecchio script che faceva la stessa cosa ma per un diverso sito di video hosting:
    codice:
    $codice=$_POST['codice'];
    $codice=preg_replace('#width\=\"(.*?)\"#i', 'width="342"', $codice);
    $codice=preg_replace('#height\=\"(.*?)\"#i', 'height="256"', $codice);
    In pratica 560 e 315 devono essere sostituiti rispettivamente da 342 e 315...
    Il codice PHP che ho appena copiato non funziona, non so il perchè. Non sono pratico nella funzione preg_replace.
    Qualcuno sa darmi una mano postandomi il corretto codice spiegandomi magari dove sbaglio? Spero di essere stato chiaro nella spiegazione del problema

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    codice:
    preg_replace("/width=[\"\']?[0-9]*[\'\"]?/si","width='$w'",$s);
    dovrebbe funzionare
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Ti ringrazio ma non funziona. Suggerimenti?

  4. #4
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    a me funziona hai copiato male
    Per gli Spartani e Sparta usa spartan Il mio github

  5. #5
    Originariamente inviato da linoma
    codice:
    preg_replace("/width=[\"\']?[0-9]*[\'\"]?/si","width='$w'",$s);
    dovrebbe funzionare

    Ho cambiato il codice così
    codice:
    $codice=preg_replace("/width=[\"']?[0-9]*['\"]?/si",'width="342"',$codice);
    $codice=preg_replace("/height=[\"']?[0-9]*['\"]?/si",'height="256"',$codice);
    il problema è che restituisce questo codice embed:
    codice:
    <iframe width="342""560" height="256""315" src="http://www.youtube.com/embed/oRC6Ru7uXqk" frameborder="0" allowfullscreen></iframe>
    Come si può risolvere?

  6. #6
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    a me continua a funzionare, sara qualche bug del PHP se nn di Apache
    codice:
    $s = "<iban width=\"560\" height=\"315\" src=\"http://www.youtube.com/embed/oRC6Ru7uXqk\" frameborder=\"0\" allowfullscreen></iframe>";
    $search = array("/width=[\"\\']?[0-9]*[\\'\"]?/si","/height=[\"\\']?[0-9]*[\\'\"]?/si");
    	$replace = array("width='500'","height='300'");
    	echo preg_replace($search,$replace,$s);
    Per gli Spartani e Sparta usa spartan Il mio github

  7. #7
    mmm va bene e grazie comunque per la soluzione postata
    Se qualcun'altro avesse un'altra soluzione si faccia avanti

    Ciao

  8. #8
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Prova questa

    Codice PHP:
    $codice preg_replace(array('/width="\\d+"/i''/height="\\d+"/i'), array('width="www"''height="hhh"'), $codice); 
    Sostituisci www e hhh con i valori che vuoi.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  9. #9
    Grazie Secta, ma il tuo codice non da alcun risultato. E' come se non esistesse...
    Potresti spiegarmi passo passo cosa vuol fare quel codice? Così vedo se riesco a capirci qualcosa e a trovare una soluzione

  10. #10
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Il mio codice fa quello che chiedi tu... se a te non risulta vuol dire che sbagli qualcosa... copia e incolla esattamente questo codice

    Codice PHP:
    $codice '<iframe width="560" height="315" src="http://www.youtube.com/embed/oRC6Ru7uXqk" frameborder="0" allowfullscreen></iframe>';
    var_dump($codice);
    $codice preg_replace(array('/width="\\d+"/i''/height="\\d+"/i'), array('width="www"''height="hhh"'), $codice);
    var_dump($codice); 
    Ti darà un iframe in cui width ed height avranno rispettivamente come valori www e hhh... cambiali!!
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.