- Home
- Categorie
- Coding e Sistemistica
- PHP
- come mai php recupera una parte della variabile?
-
come mai php recupera una parte della variabile?
come mai in questo codice $monumento recupera il valore corretto ovunque tranne che in title='$monumento'?....mi spiego meglio! se $monumento è uguale a "Porta Romana" il title recupera solo la parola Porta mentre '.$monumento.' recupera il valore completo....
come mai??[php]
<?php
$sql_mon = "SELECT monumento, descrizione, foto, itinID FROM tbl_monumenti WHERE $itin = itinID";
$query_mon = mysql_query($sql_mon);
while (list($monumento, $descrizione, $foto) = mysql_fetch_row($query_mon))
{
$descrizione = preg_replace("/([a-zA-Z]+://[a-z0-9_.-]+".
"[a-z]{2,6}[a-zA-Z0-9/*_-?&%=,.]+)/", '<a href="$1" style="text-decoration:
underline;background:none;display:inline;padding:0;margin:0;font-size:12px;" target="_blank">sito ufficiale</a>', $descrizione);
if ($foto != "")
{
echo '<a href="'.$foto.'" rel="lightbox" style="text-decoration:underline;display:inline;margin:0;font-size:12px;" title='.$monumento.'>'.$monumento.'</a>:'.$descrizione.'<br><br>'; }
else
{................. ?> [/php]
-
Ciao thenax
benvenuto anche tu nel mondo della svista
errore comune che commetto spesso e volentieri......Il discorso è semplice, prova a pensare quale sia il risultato HTML di questo pezzo:
[php]<?
echo '..... style="quellacosalì" title='.$monumento.'>....';
?>[/php]
..... ci hai pensato :)?
ebbene si è proprio quello che hai pensato (che comunque puoi verificare guardando il sorgente della pagina):
[html]...... style="quellacosalì" title=Porta Romana>[/html]
Noti nulla di strano :D?
Già......il title prende il valore di porta, ma poi....c'è uno spazio, quindi si cambia attributo (non riconosciuto quindi ti ritrovi un Romana viaggiate per tutto il codice pronto a fiondarsi nel primo buco che trova XD)
Come tutti gli altri attributi, il valore dello stesso va incluso entro doppi apici
Puoi risolvere o mettendo i doppi apici:[php]<?
echo '..... style="quellacosalì" title="'.$monumento.'">....';
?>[/php]
così avrai il seguente HTML come risultato:
[html]...... style="quellacosalì" title="Porta Romana">[/html]
oppure cambiare gli apici dell'echo con i doppi apici ed eliminare la chiusura e riapertura dela stringa:
[php]<?
echo "..... style="quellacosalì" title="$monumento">$monumento....";
?>[/php]
Ma non devi lasciare gli apici senno' invece del valore contenuto da $monumento visualizzerai materialmente la stringa $monumentoCome riferimento puoi dare un'occhiata anche alle FAQ