Creare Intestazione...in php

Salve gente, ho appena provato uno script reperito su questo portale che mi permette di creare un'intestazione automatica di un testo molto lungo;

Il mio problema è che avrei bisogno di uno script in php che mi prenda solo una parte del testo (circa 20 lettere) dopodichè inserisca automaticamente dei puntini (...) e, cliccando su questa intestazione ho la possibilità di andare alla pagina dove posso trovare l'intero articolo (un pò come il titolo dei topic su questo forum)

Credo non sia difficile ma sinceramente non alla mia portata, spero possiate aiutarmi, Grazie ;)

inviato 10 anni fa
yusizu
X 0 X

Ciao yusizu,

allora, supponiamo che nella variabile $str hai la stringa da visualizzare, in php esiste la funzione substr:

http://it.php.net/manual/en/function.substr.php

che permette di visualizzare solo una porzione di testo

substr ( string stringa, int start [, int lunghezza] )

Quindi rapportata al tuo caso, in cui avrai la stringa in $str e di questa vuoi visualizzare i primi 20 caratteri e farli seguire da "...":

echo substr($str,0,20)."...";

Per rendere cliccabile questa e mandarla al testo completo, mi servirebbe sapere questa stringa se viene presa da un Db e se in questo DB i recordo sono discriminati da degli 'id' o cmq quali sono che diversificano i dversi record...

Adesso ti faccio solo un esempio, se per esempio prendi queste stringhe da una tabella di un DB e in questa tabella ogni record ha un proprio ID univoco (IDrecord), potresti fare una cosa così:

//cicli tutti i record e per ognuno
<a href="testo_completo.php?IDrecord=<?php echo $IDrecord; ?>">
 <?php echo substr($str,0,20)."..."; ?></a>

e nella pagina testo_completo.php recuperi l'id che hai pasasto via get e fai una query per estrarti il testo completo:

$IDrecord = (int)$_GET['IDrecord'];
$res = mysql_query("SELECT * FROM tabella WHERE IDrecord='$IDrecord'") or die (mysql_error());
$row = mysql_fetch_array($res);

//Se per esempio il testo è nella colonna 'testo'
echo "Testo Completo: ".$row['testo'];

Ti ho fatto solo un esempio cercando di immaginare come potesse essere una eventuale tabella del tuo Db, se + o - è così, ti basterà sostituire i nomi fittizzi che ho messo...

Spero di esserti stato d'aiuto

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

Credo di essere sulla strada giusta ma, l'unico problema in questo momento è nel creare il testo di max 20 caratteri, nel senso che visualizzo solo "..." con il collegamento ipertestuale al testo completo....non sò proprio quale sia il problema.....

Cmq grazie mille!

risposto 10 anni fa
yusizu
X 0 X

Credo di essere sulla strada giusta ma, l'unico problema in questo momento è nel creare il testo di max 20 caratteri, nel senso che visualizzo solo "..." con il collegamento ipertestuale al testo completo....non sò proprio quale sia il problema.....

Cmq grazie mille!

Detta così è un po' difficile, probabilemente non viene valorizzata la stringa che passi alla funzione substr:

substr(stringa,int start[,int lunghezza]);

nel senso che magari non la setti correttamente, prova a fare un echo della tua variabile stringa prima di passarla alla funzione...

CMQ per chiarire un po', posta un po' di codice...non troppo xo  ;D

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

la seconda parte quella del teso intero funziona alla meraviglia, ovviamnete devo indicare l'id dal quale estratte i dati, il problema è qui:

//ma qui non manca la connessione al db??

<a href="intestazione.php?IDrecord=<?php echo $IDrecord;?>">
<?php echo substr("$str",0,10)."..."?></a>
risposto 10 anni fa
yusizu
X 0 X

Bhè, logicamente, se estrai i dati dal DB, la connessione ci vuole  :)...

Ora, penso che tu estragga i dati tramite un ciclo, giusto?

Prova a stampare quel pezzo di codice(del ciclo) o eventualmente anche tutta la pagina(magari solo la parte interessata)...così vediamo dove può essere il problema...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

io estraggo i dati dal db ma, con tutti quei php del collegamento ipertestuale non riesco ad estrarli,

vedi se puoi aiutarmi, io ho creato una semplice tabella chiamata testo con un IDrecord autoincrement che è una chave primaria ed il campo testo CHAR (50)

prova cortesemente a postarmi un pò di codice inerente la connessione e la sub string col link, credo che l'errore banalissimo sia proprio li  :(

cmq il codice che ho utilizzato x vedere tutto il testo è questo

<?

include( "dati.txt"); 

mysql_connect($host,$user,$password);

mysql_select_db("$db");

$IDrecord = "1";
$res = mysql_query("SELECT * FROM testo WHERE IDrecord='$IDrecord'") or die (mysql_error());
$row = mysql_fetch_array($res);


echo " ".$row['testo'];

Grazie MILLE!

risposto 10 anni fa
yusizu
modificato 10 anni fa
X 0 X

Ok...

Quindi presumibilmente dovresti fare una cosa così:

<?php
/*connessione al DB dove questi dati
$host,$user,$password
li devi definire tu*/
$conn = mysql_connect($host,$user,$password);

//selezioni il Db
mysql_select_db($db,$conn);

//Fai una query che ti estrae tutti i testi dalla tabella
$res = mysql_query("SELECT * FROM testo") or die (mysql_error());
//fai un ciclo per estrarre ogni singolo record
while($row = mysql_fetch_array($res))
{
   $IDrecord = $row['IDrecord'];
   $str = $row['testo'];
?>

<a href="intestazione.php?IDrecord=<?php echo $IDrecord;?>">
<?php echo substr($str,0,20)."..."?>
</a><br />

<?php
}//fine while($row = mysql_fetch_array($res))
?>

provalo così...

CMQ il link per la funzione substr è:

http://it2.php.net/manual/it/function.substr.php

www.php.net è il sito ufficiale da cui puoi anche cercare tutte le funzioni di php...

Ora devo staccare, nel caso avessi problemi posta...leggerò domattina...sorry...

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

GRAZIE MILLE:::::::::::::::: O0 O0 O0 O0

risposto 10 anni fa
yusizu
X 0 X
GRAZIE MILLE:::::::::::::::: O0 O0 O0 O0

Dato che non ho ancora staccato ( maledetti lavori esterni  :tichedoff:) sono ancora qui...

Cmq funziona quello che ti ho postato?

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X

UNA Meraviglia....proprio quello che cercavo!

Se poi domani hai un pò di tempo magari ti annoio con un'altra cosetta:

ovvero dovrei inserire queste 20 lettere famose in una cella ma, ho paura che mi sfasi tutto il layout del sito, così dovrei trovare il metodo x fare andare automaticamente a capo il testo ovviamento senza troncare le parole.......cmq poi ne parliamo magari apro un'altra discussione,

Ancora Grazie mille x le tempestive ed esaustive risposte.........ce ne fossero..........! :bye: ;)

risposto 10 anni fa
yusizu
X 0 X

UNA Meraviglia....proprio quello che cercavo!

Se poi domani hai un pò di tempo magari ti annoio con un'altra cosetta:

ovvero dovrei inserire queste 20 lettere famose in una cella ma, ho paura che mi sfasi tutto il layout del sito, così dovrei trovare il metodo x fare andare automaticamente a capo il testo ovviamento senza troncare le parole.......cmq poi ne parliamo magari apro un'altra discussione,

Ok,al prossimo thread allora  O0....

ciao

Lore

risposto 10 anni fa
Lore
Lore
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda