..:: Micene.net - Il blog dell'informatica ::..

..:: Micene.net - Il blog dell'informatica ::..
[ Home | Registrati | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download | Cerca | FAQ ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Programmazione
 HTML
 wrap per i link lunghi
 Nuova Discussione  Rispondi
 Invia discussione a un amico
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione  

kensan
Nuovo Utente



44 Messaggi

Inserito il - 01/10/2005 : 16:10:05  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Ho dei link a volte lunghi e pure dei testi inseriti da utenti sconosciuti, testi che possono essere lunghi e senza spazio tipo:
123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890

Dovrei inserire questo testo (prelevato da un data base) in uno colonna larga 160 pixel.

Con una tabella non funziona perché si allarga fino a contenere tutto il link/testo se non ha spazi, forse serve il CSS.

Mi interesserebbe sia che andasse a capo forzatamente sia che il testo troppo lungo venga coperto/eliminato/oscurato.

Un aiutino?

Ciao :)

MpMp
Amministratore




298 Messaggi

Inserito il - 05/10/2005 : 13:35:00  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
allora...dimmi che puoi usare php, asp o javascript...ti prego dimmelo....

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 06/10/2005 : 22:01:29  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da MpMp

allora...dimmi che puoi usare php, asp o javascript...ti prego dimmelo....


Si posso metterci il php, però credevo che un semplice "style width="160px"" a qualche cosa di analogo fosse sufficiente, invece mi pare non sia così da quel che dici.

Vada per il php, come dici di fare?
Torna all'inizio della Pagina

MpMp
Amministratore




298 Messaggi

Inserito il - 09/10/2005 : 13:36:35  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
Scusa il ritardo ma nel tempo libero sto lavorando alla nuova grafica di questo sito.

Il codice è il seguente
<?
$stringa="1234567890";

E' la stringa da dividere

$lunghezza_stringa=strlen($stringa);

Variabile di servizio

$caratteri_per_linea=2;

Dopo quanti caratteri vuoi mandarre a capo la stringa

for ($k=0;$k<((integer)($lunghezza_stringa/$caratteri_per_linea));$k++)
{
	echo substr($stringa, $k*$caratteri_per_linea, $caratteri_per_linea) . "<br>";
}
?>


Chiedimi info se è difficile a capire il for e dimmi se ti piace una cosa del genere o lo vuoi più automatizzato...

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 10/10/2005 : 15:51:55  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da MpMp

Scusa il ritardo ma nel tempo libero sto lavorando alla nuova grafica di questo sito.
...
Chiedimi info se è difficile a capire il for e dimmi se ti piace una cosa del genere o lo vuoi più automatizzato...


Quindi vedrò una nuova grafica prossimamente? Bene! :)

Il codice mi è utile perché non ho un manuale di php, comunque il for se vuoi te lo posso fare in assembler, per dire che di codici ne conosco.

Secondo me si può fare anche come dici tu ma non proprio esattamente. Diciamo che occorre dividere le parole e capire quanto sono lunghe, una cosa del genere:

$superstringa="Giorgio ha detto: ciao 123456789012345678901234567890"
Parole[]=dividi_stringa_in_parole($superstringa);
// Parole è un array di stringhe, ogni elemento è una parola

For i=1 to dim(Parole[])
{
if (len(Parole[i])>$caratteri_per_linea)
{
$stringa=Parole[i];
//il tuo programma che divide in pezzi $stringa, magari mettendo uno spazio al posto dei <br>
}
else
{echo Parole[i]}
}

In questo modo le stringhe troppo lunghe vengono frammentate da uno spazio come fa il tuo codice ma in più non vengono frammentate le stringhe di questo tipo: "ciao ciao ciao ciao ciao ciao" in quanto gli spazi sono dei frammentatori.

Il problema è trovare o fare la funzione: Parole[]=dividi_stringa_in_parole($superstringa);

Esiste?
Torna all'inizio della Pagina

MpMp
Amministratore




298 Messaggi

Inserito il - 10/10/2005 : 20:44:04  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
aspetta un attimo...vorrei farti una domanda: ma io cosa ho fatto?

Ho fatto lo stesso che hai fatto tu... [NdR: il mio tono è sereno, non inca]
Io ho limitato l'uso di variabili (ne uso 3, ma senza problemi le riduco a 2, "$lunghezza_stringa"), non ho usato array e ho limitato le stringhe e la chiamate alle funzioni.
Io l'avrei risolto così, se poi tu mi dici: "Lo so, ma vorrei si facesse come ho detto io." Io non ho nessun problema, anche perchè forse potrebbe essere che l'array in seguito ti serva a qualcos'altro.

Aspetto tua risposta per eventuali modifiche.

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 11/10/2005 : 19:57:53  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da MpMp

aspetta un attimo...vorrei farti una domanda: ma io cosa ho fatto?

Ho fatto lo stesso che hai fatto tu... [NdR: il mio tono è sereno, non inca]
Io ho limitato l'uso di variabili (ne uso 3, ma senza problemi le riduco a 2, "$lunghezza_stringa"), non ho usato array e ho limitato le stringhe e la chiamate alle funzioni.
Io l'avrei risolto così, se poi tu mi dici: "Lo so, ma vorrei si facesse come ho detto io." Io non ho nessun problema, anche perchè forse potrebbe essere che l'array in seguito ti serva a qualcos'altro.

Aspetto tua risposta per eventuali modifiche.


Mi sembrava di avere capito il codice che hai scritto ma forse mi sbaglio. Provo a fare un esempio, vediamo se sul pratico ci troviamo :) :
Suppongo che il $titolo di un commento sia "ciao ciao ciao ciao ciao ciao ciao.", se lo metto dentro una tabella da 50 pixel con un echo $titolo non ho nessun problema in quanto va a capo quando è il caso, per esempio si avrà:

ciao ciao
ciao ciao
ciao ciao
ciao.

Se invece $titolo vale "1234567890123456789012345678901234567890" mi sballa tutto il layout grafico perché non ci sta nella tabella di 50 pixel.

Ora mi chiedo: il codice che hai scritto tu distingue i due casi? In pratica il primo $titolo non è da dividere, infatti sarebbe brutto vedere:

ciao ciao c
iao ciao ci
ao ciao cia
o.

e anche inutile una divisione di questo genere, meglio lasciare che vada a capo quando è il caso. Invece il secondo $titolo è da dividere. Che dici?
Torna all'inizio della Pagina

MpMp
Amministratore




298 Messaggi

Inserito il - 12/10/2005 : 13:42:15  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
aaaaaaaaaaaaaaaaaaaaaaaaaaah!

Vedi che ci siamo!

Non mi avevi detto che c'erano pure parole corte, ok hai ragione tu! faccio un paio di prove e poi ti posto il codice.


Sorry.

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 12/10/2005 : 15:22:59  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da MpMp

aaaaaaaaaaaaaaaaaaaaaaaaaaah!


:) bene, ci siamo intesi.

Grazie in anticipo per il codice e ricorda che non ho nessuna fretta, magari se hai da fare e ti ricordi le funzioni che servono basta che posti quelli, ad assemblare il codice sono bravino...^_-

Ciao :)
Torna all'inizio della Pagina

MpMp
Amministratore




298 Messaggi

Inserito il - 16/10/2005 : 13:31:11  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
chunk_split: divide una stringa in n caratteri

chunk_split($stringa_da_dividere, n);

Es.
$stringa = "Are you ready?";
$stringa_slittata = chunk_split($stringa, 5);

Devo ancora provarlo, l'ho trovato per caso su un libro di php...

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 16/10/2005 : 20:42:34  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
Citazione:
Messaggio inserito da MpMp

chunk_split: divide una stringa in n caratteri


Questa è utile ma va aggiunto preg_split che divide in parole la $frase, questo è il codice finale che mi serve:
$frase="hypertext language, programming 123456789 12345678 1234567890 123456789123456789 12345678912345678 1234567891234567890 12345678912345678900 ciao ciao ciao";

$parole = preg_split ("/\s/", $frase);
$len_max=9;
for($i=0;!empty($parole[$i]);$i++)
{
  echo chunk_split($parole[$i], $len_max);
}

Il risultato del codice é:

hypertext language, programmi ng 123456789 12345678 123456789 0 123456789 123456789 123456789 12345678 123456789 123456789 0 123456789 123456789 00 ciao ciao ciao

Modificato da - kensan in data 16/10/2005 20:44:49
Torna all'inizio della Pagina

MpMp
Amministratore




298 Messaggi

Inserito il - 17/10/2005 : 14:17:06  Mostra Profilo  Invia Email  Visita l'Homepage di MpMp Invia a MpMp un Messaggio Privato  Rispondi Quotando
Più che altro restituisce una matrice...

preg_split ( criterio, $stringa );

Però però... Restituisce 2 valori della parola: la parola stessa e la posizione del carattere di partenza, criterio escluso... Non riesco a pensare ad un'utilizzo d questa matrice...

Ho trovato pure questo:
"Esempio 2. Esempio di suddivisione di un testo in caratteri.

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);


E' a questo link: http://www.aoindustries.com/docs/php-4.2.3/it/function.preg-split.html

MpMp consiglia:









Torna all'inizio della Pagina

kensan
Nuovo Utente



44 Messaggi

Inserito il - 17/10/2005 : 21:33:39  Mostra Profilo  Invia Email  Visita l'Homepage di kensan Invia a kensan un Messaggio Privato  Rispondi Quotando
$parole = explode(" ", $row["titolo"]);
                //$parole = preg_split ("/\s/", $frase);

                $len_max=20; //precipitevolissimevolmente (26)
                $titolo="";
                
                for($i=0;$i < count($parole);$i++)
                {
                  $parola=$parole[$i];
                  if (!empty($parola))
                  {
                    $titolo=$titolo . chunk_split($parola, $len_max);                   
                  }
                }
     
                $titolo=substr($titolo, 0, strlen($titolo)-2);
                //Spazio finale piu' fine stringa (messi da chunk_split) da togliere

Questo è il codice che gira attualmente, ho preferito usare explode() che mi sembra meglio, un aspetto poco comprensibile è che chunk_split aggiunge due caratteri dopo l'ultima parola, lo spazio e un carattere non visualizzato per cui è occorso toglierli.
Torna all'inizio della Pagina
  Discussione  
 Nuova Discussione  Rispondi
 Invia discussione a un amico
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
..:: Micene.net - Il blog dell'informatica ::.. © Micene.net & Mp Style Torna all'inizio della Pagina
Pagina generata in 0,2 secondi. Herniasurgery.it | Snitz.it | Snitz Forums 2000