codice swf incluso in php

  • Creatore Discussione Creatore Discussione beppe10
  • Data di inizio Data di inizio
B

beppe10

Guest
Buonasera a tutti, non so se il titolo chiarisce bene il concetto che vorrei esprimere, in poche parole sto dilettandomi a scrivere del codice php, per creare una piccola applicazione di gestione banner. Il fatto è che se vi applico delle immagini tipo jpg oppure gif, il tutto funge perfettamente, se al posto delle immagine volessi mettere un file ".swf" (Flash), non lo visualizzo. Vi è un modo "ortodosso" al fine di far visualizzare un immagine ".swf" includendolo in un file php?

Grazie in anticipo per l'aiuto.
 
Non puoi visualizzare direttamente il codice XHTML per visualizzare un normale formato Flash, sostituendo la parte dove viene definito l'URL con la parte dinamica in PHP?

Ciao Alessandro, grazie per il tuo interessamento, perdonami ma non ho bene capito quello che mi stai dicendo. Se non sono stato chiaro ti prego di dirmelo in modo da postare qualche esempio.
 
Ok, allora: non sei stato chiaro, posta qualche esempio :D

In pratica ho un file html: "banners_flash.html" all'interno del quale ho inserito il codice flash di questo tipo:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="93">
<param name="movie" value="banner/bianco_2.swf" />
<param name="quality" value="high" />
<embed src="banner/bianco_2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="93"></embed>
</object>



Ed un secondo file in php: "banner_rotazione.php", per generare la random dei banner, di questo tipo:
<?
$numero = rand(1,3);
switch($numero)
{
// il mio primo banner e un flash ed è scritto correttamente all'interno del file: "banners_flash.html" e non si visualizza.
case "1":
$img = "banners_flash.html";
$link = "http://www.miositouno.com";
break;
// il mio secondo banner è un immagine jpg e funge correttamente
case "2":
$img = "banner/img_banner/top2.jpg";
$link = "http://www.miositodue.com/";
break;
// il mio terzo banner è un immagine jpg e funge correttamente
case "3":
$img = "banner/img_banner/top3.jpg";
$link = "http://www.miositotre.com/";
break;
}
echo ("<a href='$link' target='_blank'><img src='$img' alt='Nuova Immagine' img width='500' height='100' border='0' class='banner_top'></a>");
?>


Il fatto è che le immagini in jpg le visualizzo correttamente mentre quello in .swf non lo visualizzo ma mi da il link correttamente.

Come mai?
 
Immagino che quello che mi hai fornito non sia l'esatto codice dello script, perché così non potrebbe funzionare. Comunque ti consiglio di usare questa versione, modificata:
PHP:
<?php
$banners = array(
	array('banners_flash.html', 'http://www.miositouno.com'),
	array('immagine.jpg',       'http://www.miositodue.com'),
	array('immagine.gif',       'http://www.miositotre.com'),
);

shuffle($banners);

$file = $banners[0][0];
$site = $banners[0][1];

$extension = explode('.', $file);
$extension = $extension[count($extension) - 1];

if($extension == 'html')
{
	$contents = file_get_contents($file);
	echo "<a href=\"{$site}\">{$contents}</a>";
}
else
{
	echo "<a href=\"{$site}\"><img src=\"{$file}\"></a>";
}
?>
 
Grazie per la tua risposta proverò questo script, puoi commentare le righe del codice in modo da poter meglio capire i vari passaggi? ....Una curiosità perchè dici che scritto in quel modo il mio script non può funzionare?

Grazie:)
 
Scusami, mi sono appena reso conto di aver detto una delle boiate più colossali di questo mondo (e ce ne sono state tante!). Peggio ancora di quando ho detto che borgo italia era un uomo :D

Comunque, ecco la versione commentata dello script, spero che sia abbastanza chiara:
PHP:
<?php
// definisco l'array contenente i banner
$banners = array(
	// primo banner: animazione Flash
    array('banners_flash.html', 'http://www.miositouno.com'),
    
    // secondo banner: immagine JPEG
    array('immagine.jpg',       'http://www.miositodue.com'),
    
    // terzo banner: immagine GIF
    array('immagine.gif',       'http://www.miositotre.com'),
);

// mescola casualmente l'array dei banner
shuffle($banners);

// pesca il file del primo, che sarà uno a caso
$file = $banners[0][0];

// pesca il sito relativo al primo, che sarà uno a caso
$site = $banners[0][1];

// divide il nome del file dove trova i punti
$extension = explode('.', $file);

// recupera la stringa dopo l'ultimo punto (chiamasi estensione)
$extension = $extension[count($extension) - 1];

// se il file è un banner Flash
if(strtolower($extension) == 'html')
{
	// ne recupera il contenuto
    $contents = file_get_contents($file);
    
    // lo visualizza come se fosse un'animazione
    echo "<a href=\"{$site}\">{$contents}</a>";
}
// se è un file immagine
else
{
	// lo visualizza come se fosse un'immagine tramite HTML
    echo "<a href=\"{$site}\"><img src=\"{$file}\"></a>";
}
?>
È nobile che tu voglia sapere che cosa stai usando, bravo! :D
Un altro utente se ne sarebbe già andato con un "Funziona perfettamente, grazie mille per l'aiuto!".
 
Grazie, hai capito lo spirito del forum, ovvero conoscere, imparare più che solo prendere e basta.
Comunque il tuo script è ottimo. Peccato che ha le stesse problematiche del mio, ovvero mi fa vedere le immagini gif o jpg ma non visualizza purtroppo il file .swf.:dipser:
 
Scusami alessandro1997, mi sono reso conto di aver detto una cavolata:D, il tuo script, ma anche il mio, funzionano, il problema era che avevo messo una directory non correttta:hammer:
Ho risolto il tutto.
Visto la tua gentilezza ti chiedo cortesemente se puoi darmi una dritta su questa mia domanda: se invece di avere immagini random volessi decidere io se il banner 1 deve andare prima del banner 2 e via dicendo, decidendo anche per quanto tempo devono restare visualizzati, è possibile odificare il tuo script ed in che modo?

Grazie ancora per la tua disponibilità. Sei un Genio:fonzie:
 
una volta ho realizzato una cosa del genere, ma avevo utilizzato un db mysql in cui ho salvato i nomi dei banner flash, un riferimento alla poisizione nella pagina e un campo "priorità" da 1 a 5 per stabilire quali banner dovevano essere visualizzati più spesso.
 
Intendi dire che un utente deve vedere per un'ora il banner 1 e per un'altra ora il banner 2? La cosa non è semplicissima, però si può fare. Prima chiarisci quello che vuoi fare con un esempio.

Si in effetti vorrei poter stabilire le priorità dei banner e la relative permanenza nella pagina web, in modo che non vengano più prelevati a random ma decidere a priori quello che dovrà essere visualizzato per primo.

A proposito il codice che mi hai postato, come ti dicevo funziona egregiamente, il problema si verifica sui link, o meglio sul link dedicato al seguente codice:
========
<?php
// definisco l'array contenente i banner
$banners = array(
// primo banner: animazione Flash
array('banners_flash.html', 'http://www.miositouno.com'),

========

in questo modo pur vedendosi l'indirizzo del link, cliccando sopra il banner in flash non funziona, mentre con le immagini".jpg" o ".gif" il tutto funge.

Bisogna percaso inserire direttamente nel file ".fla" dell'animazione flash il link corrispondente?

Grazie ancora;)
 
ciao
...ho detto che borgo italia era un uomo...
è lo stesso che dire che qualcuno ha 12 anni

comunque prova cosi
fai un file (anche txt) solo col codice dell'swf (es file_swf.htm)

HTML:
<object classid="clsid27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="93">
<param name="movie" value="banner/bianco_2.swf" />
<param name="quality" value="high" />
<embed src="banner/bianco_2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="93"></embed>
</object>

poi nella pag php (metti i tag <?php non gli short <?)

PHP:
<?php
$numero = rand(1,3);
switch($numero){
// il mio primo banner e un flash ed è scritto correttamente all'interno del file: "banners_flash.html" e non si visualizza.
	case "1":
		echo "<a href='http://www.miositouno.com' target='_blank'>";
		include_once "file_swf.htm";//includi il file
		echo "</a>";
	break;
	case "2":
		echo "<a href='http://www.miositodue.com' target='_blank'>";
		echo" <img src='banner/img_banner/top2.jpg' alt='Nuova Immagine' img width='500' height='100' border='0' class='banner_top'>";
		echo "</a>";
	break;
	case "3":
		echo "<a href='http://www.miositotre.com' target='_blank'>";
		echo" <img src='banner/img_banner/top3.jpg' alt='Nuova Immagine' img width='500' height='100' border='0' class='banner_top'>";
		echo "</a>";
	break;
}

al massimo non funzia
 
È praticamente quello che ho fatto io, ma non sembra funzionare. Probabilmente è un problema di HTML, non di PHP, perché il codice generato è sempre uguale per il link, cambia solo il fatto che se è un'immagine genera il codice <img>, se è un file HTML ne visualizza direttamente il contenuto tra link.
 
ciao
....ma non sembra funzionare....
appunto, non funzia ne in php ne in puro html quale il seguente

HTML:
<a href='http://www.borgo-italia.it' target='_blank'>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="224" height="224">
  <param name="movie" value="drago.swf">
  <param name=quality value=high>
  <embed src="drago.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="224" height="224"></embed>
</object>
</a>

non dipende da php (o html) ma dall'swf che non accetta quel codice. l'eventuale link al sito sarà da mettere internamente al file swf (eventuale pulsante nascosto grande come tutto l'swf)
 
allora, secondo Voi il link bisogna metterlo direttamente nel file".swf"? non può esserci un'altra soluzione?:confused:
 
ciao
è sì, il link devi metterlo dentro l'swf.
ho fatto diverse verifiche, ma credo che sia l'unico modo.
per questo non amo particolarmente flash
 

Discussioni simili