[PHP] Cambio url su menu css

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Ciao, come da discussione precedente, creo una pagina chiamata menu.php con varie url di canali streaming. Queste url, vengono aggiornate praticamente ogni poche ore.
Se apro menu.php, mi ritrovo i collegamenti ipertestuali ai vari canali. Purtroppo la lista url è molto lunga ed inoltre in ordine casuale,unica cosa che non cambia e il nome .Stavo quindi pensando di creare dei collegamenti ipertestuali al nome del canale e non alla url che cambia spessissimo, in modo da averli in un ordine preimpostato. Esempio:
Codice:
<?php
?>
<a href='index.php?var=http://livestream.com/rai1.m3u8'>Rai-1</a><br/>
 <a href='index.php?var=http://livestream.com/canale5.m3u8'>Canale5</a><br/>
 <a href='index.php?var=http://livestream.com/rete4.m3u8'>Rete4</a><br/>
 <a href='index.php?var=http://livestream.com/rai2.m3u8'>Rai-2</a><br/>
 <a href='index.php?var=http://livestream.com/italia1.m3u8'>italia1</a><br/>
 <a href='index.php?var=http://livestream.com/mediasetextra.m3u8'>mediasetextra</a><br/>
 <a href='index.php?var=http://livestream.com/Rai-3.m3u8'>Rai-3</a><br/>
questo è un esempio delle url in ordine sparso, e se fosse possibile avere una cosa del genere:
Codice:
<?php
?>
<a href='index.php?var=http://livestream.com/rai1.m3u8'>Rai-1</a><br/>
<a href='index.php?var=http://livestream.com/rai2.m3u8'>Rai-2</a><br/> 
<a href='index.php?var=http://livestream.com/Rai-3.m3u8'>Rai-3</a><br/> 
<a href='index.php?var=http://livestream.com/rete4.m3u8'>Rete4</a><br/>
<a href='index.php?var=http://livestream.com/canale5.m3u8'>Canale5</a><br/>
<a href='index.php?var=http://livestream.com/italia1.m3u8'>italia1</a><br/>
<a href='index.php?var=http://livestream.com/mediasetextra.m3u8'>mediasetextra</a><br/>
Inizialmente, pensavo di utilizzare un menu con css del tipo:
Codice:
<ul>
<li><a href='index.php?var=http://livestream.com/rai1.m3u8'>Rai-1</a><br/></li>
<li><a href='index.php?var=http://livestream.com/canale5.m3u8'>Canale5</a></li>
<li><a href='index.php?var=http://livestream.com/rai2.m3u8'>Rai-2</a></a></li>
<li><a href='index.php?var=http://livestream.com/italia1.m3u8'>italia1</a></li>
</ul>
Ma mi sono reso conto che i collegamenti, al primo aggiornamento del menu.php andrebbero fuori uso, da qui l'idea se possibile di fare riferimento al nome canale che rimane invariato anzichè alla url.
Spero di avere espresso correttamente quello che vorrei fare. Grazie.
 

filomeni

Moderatore
Membro dello Staff
MOD
14 Mag 2006
1.052
6
38
51
Roseto degli Abruzzi (TE)
www.sitiweb.cloud
Ciao, poco si capisce o poco ho capito... Per avere l'ordine desiderato bisogna capire la query che li genera poi hai detto che volevi utilizzare un "menu con css"? Il codice riportato è una semplice lista ordinata...
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Ciao, la lista che ho nominato menu.php, a video non è il massimo da vedere con tanti link azzurri su sfondo bianco, quindi ho fatto un menu a a discesa, pensando di creare un menu con i canali da selezionare. Ho fatto un menu sempre in vista con style e css e in un iframe il player, dal menu seleziono i canali che vedo dentro l'iframe.
Stavo finendo di assemblare il tutto ma mi sono arenato quando ho realizzato che le url canali cambiano almeno fue volte al giorno, quindi sarei costretto a ricompilare manualmente il menu continuamente. A questo punto ho pensato, il nome del canale è sempre lo stesso, cambia la url dello streaming e allora vi chiedo: E' possibile fare in modo che il collegamento si leghi al nome canale anziché alla url? Ad esempio ho lettocin rete che si possono usare degli id per le url, forse dico una fesseria ma se ad esempio fosse possibile assegnare ad esempio id=Raiuno e all'id corrispondesse l'url che viene aggiornata, forse potrei risolvere il mio problema. Vorrei evitare di creare tante variabili per ogni canale, essendo veramente molti. Spero con questo messaggio di essere stato almeno un po' più chiaro nel spiegare cosa vorrei fare.
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, devi intervenire sul file che crea il menu php. puoi ordinare l'array prima di scrivere nel file.
Per chi non sa che hai un file che ti generà il menu diventa difficile capire come aiutarti.
Cerca sempre di dare il maggior numero di dettagli che puoi.
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Ciao, questa è la discussione inerente il file che utilizzo per generare il menù https://forum.mrw.it/threads/php-estrapolare-testo-da-una-stringa.32347/#post-189276 , ma devo modificare per ordinare i dati ? Penso sia questo a cui ti riferisci? Ma poi mi rimane il problema di come passare le url che cambiano, forse generando il file posso mettere in ordine i canali e dare un id ad ognuno di loro ? Vi ringrazio della pazienza e cortesia in ogni caso.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la pagina che ti crea il menu
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Intendi questa giusto?
Codice:
<?php
$file = "https://www.miosito.com/playlist/mia password/test.m3u";
// apri il file in lettura
$fr = fopen($file, 'r');
// valorizzi una variabiel per il contenuto
$contenuto = "";
while (!feof($fr)) {
    // estrai la riga
    $riga = fgets($fr);
    // recuperi l'intero da cui inizare a leggere la riga
    $inizio = strpos($riga, "Rai");
    // memorizzi la nuova riga
    $nuova_riga = substr($riga, $inizio);
    // prepari il contenuto per il nuovo file
    $contenuto .= $nuova_riga . "";
}
// chiudi
fclose($fr);
// apri il tuo file in scrittura
$fr = fopen("test.m3u", 'w');
// scrivi il contenuto
fwrite($fr, $contenuto);
// chiudi
fclose($fr);
// Apro il file ed elimino stringhe superflue
$st = str_replace(array('#EXTM3U','#EXTINF:-1, ','======= Video ========',''),array('','','',''),file_get_contents('test.m3u',true));
fwrite(fopen('test.m3u','w'),$st);
?>


<?php
// Apro il file e creo il link per il menù

$file = "test.m3u";

$fr = fopen($file, 'r');
$i = $x = 0;
$links = array();
while (!feof($fr)) {
    $riga = trim(fgets($fr));
    if (!empty($riga)) {
        if ($i % 2 == 0) {
            $links[$x]['name'] = $riga;
        } else {
            $links[$x]['link'] = $riga;
            $x++;
        }
        $i++;
    }
}
fclose($fr);

$output = "";
foreach ($links as $link) {
    $output .= "<a href='index.php?var=" . $link['link'] . "'>" . $link['name'] . "</a><br/>\n " ;
$file = "menu.php";
$codice = "<?php
?>
{$output}
";
$fo = fopen($file, "w");
chmod($file, 0755);
fwrite($fo, $codice);
fclose($fo);   
}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
si quella.
prima di inizializzare la variabile $output riordina l'array cosi
PHP:
function sortByName($a, $b) {
    return $a['name'] - $b['name'];
}
usort($links, 'sortByName');
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Ho eseguito questa modifica come suggerito, ma controllando menu. php ritrovo i nomi raggruppati come lettera iniziale ma non in ordine alfabetico.
Codice:
while (!feof($fr)) {
    $riga = trim(fgets($fr));
    if (!empty($riga)) {
        if ($i % 2 == 0) {
            $links[$x]['name'] = $riga;
        } else {
            $links[$x]['link'] = $riga;
            $x++;
        }
        $i++;
    }
}
fclose($fr);
function sortByName($a, $b) {
    return $a['name'] - $b['name'];
}
usort($links, 'sortByName');

$output = "";
foreach ($links as $link) {
    $output .= "<a href='index.php?var=" . $link['link'] . "'>" . $link['name'] . "</a><br/>\n " ;
$file = "menu.php";
$codice = "<?php
Comunque il mio obiettivo non è tanto qurllo di avere un ordine canali che posso dare compilando il menu a tendina, quanto quello di non dover editare ogni il menu con le nuove url, pensavo se é possibile, assegnando un ID ad ogni nome canale, recuperare poi sul menu a tendina la url corrispondente.
 
Ultima modifica:

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Domanda, ho provato a fare cosi:
Sul file menu.php
ho aggiunto un array cosi:
Codice:
menu.php
<?php $array = array('Rai1','Rai2','Rai3');?>
   <a href='index.php?var='http://playlist.m3u.com/playlist1.m3u'>Rai1</a><br/>
   <a href='index.php?var='http://playlist.m3u.com/playlist2.m3u'>Rai2</a><br/>
   <a href='index.php?var=http://playlist.m3u.com/playlist3.m3u'>Rai3</a><br/>
Dopodiche su file index.html del menu ho dichiarato la variabile var,
Codice:
<?php   
$Variabile_get = $_GET['var'];
?>
quindi ho modificato il menu in questo modo:
Codice:
<ul>
<?php
 foreach($array as $Variabile){ ?>
<li><a href="http://playlist.m3u.com/<?php echo $variabile_get ?>">Rai1</a><br/></li>
<li><a href="http://playlist.m3u.com/<?php echo $variabile_get ?>">Rai2</a><br/></li>
<li><a href="http://playlist.m3u.com/<?php echo $variabile_get ?>">Rai3</a><br/></li><?php
}
?>
</ul>
Lo scopo è quello di trovare con l'array, la corrispondenza al nome Rai1, quindi prelevare la parte di url che è cambiata da un giorno all'altro e passarla al file index.html nel menu a tendina. Spero questa volta di aver reso l'idea di cosa mi serve fare.
Ho provato il tutto ma non funziona, adesso vi chiedo se il principio e corretto, dove sto facendo l'errore?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non puoi utilizzare codice php in una pagina html.
Non ho ancora capito in che ordine devono apparire, posta un paio di righe del file di testo
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
L'ordine in cui devono apparire lo ritengo di secondaria priorità, quello che più vorrei fare e il passare le url (magari con varibile visto che cambiano ogni giorno sul menu.php) al file index.html ,non avrebbe senso mettere in ordine i canali se poi non c'è modo di passarli all' index.html, oltretutto posso ordinare i canali direttamente su quest'ultimo file,dando un ordine in base a cme li metto. Questo è il file index completo, come vedi posso ordinare i canali da qui tranquillamente,
Codice:
<!DOCTYPE html PUBLIC>



<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<title>CSS DropDown Menu</title>

<link rel="stylesheet" type="text/css" href="css/reset.css" media="screen" />

<link rel="stylesheet" type="text/css" href="css/simple.css" media="screen" />

</head>

<body>



<div id="drop-menu">

<ul id="menu">

  <li><a href="http://mysite.com/home.php"target="principale" >Home</a></li>

<ul>

</ul>

 </li>

 <li><a href="#"target="principale" >Canali</a>

<ul>
<li><a href='http://example.com/streaming/Rai1.m3u'target="principale">Rai1</a><br/></li>
<li><a href='http://example.com/streaming/Rai2.m3u'target="principale">Rai2</a><br/></li>
<li><a href='http://example.com/streaming/Rai3.m3u'target="principale">Rai3</a><br/></li>

</ul>

 </li>

 <li><a href="#">About</a></li>

 <li><a href="#">Contact</a></li>

</ul>

</div>

<iframe name="principale" src="http://mysite.com/home.php" marginheight="50" height="800" width="100%" allowfullscreen = "true" ></iframe>
        
</body>

</html>
stavo anche pensando, anzichè creare il file menu.php, posso aggiornare direttamente il file index, giusto?
ma come posso mettere direttamente le url nella giusta posizione, ossia nel sottomenu Canali ad esempio
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Devi rinominare il file index.html in index.php e incollare il codice php nella posizione che vuoi tra i tag <?php e ?>
 

giannit

Nuovo Utente
30 Mar 2017
31
2
8
56
Ciao, allora sembra che finalmente funzioni tutto, infatti ho rinominato in php l'index e modificato in modo che mi legga direttamente la playlist che scarica e la posizioni sul menu. Cosi pare funzionare tutto. Ringrazio per la vostra disponibilità. Ciao
 
  • Like
Reactions: criric
Discussioni simili
Autore Titolo Forum Risposte Data
T cambio versione PHP e... panico!! PHP 4
A [PHP] ERRORE QUANDO CAMBIO SLUG NEL CMS e REWRITE PHP 6
A [PHP] Cambio immagini con orario PHP 1
F PHP cambio contenuto PHP 4
T cambio di font size in una lista di dati estratti con PHP PHP 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 2
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0

Discussioni simili