[php] incolonnare testo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

[php] incolonnare testo

Messaggio da london3 »

Codice: Seleziona tutto

echo <<<ID
1. elefante\tÈ un animale molto grande
2. cane\tÈ un animale domestico
3. ormitorinco\tÈ un animale bla bla bla...
ID;
Output:

Codice: Seleziona tutto

1. elefante    È un animale molto grande
2. cane    È un animale domestico
3. ormitorinco    È un animale bla bla bla...
Io però lo vorrei cosi

Codice: Seleziona tutto

1. elefante
           È un animale molto grande
2. cane    È un animale domestico
3. ormitorinco
           È un animale bla bla bla...
Si può?
Magari usando preg_replace()...

Ecco un altro esempio analogo
https://cdncontribute.geeksforgeeks.org ... -58-48.png
Le opzioni corte vengono presentate su un'unica riga, mentre quelle lunghe (ad esempio --version) su più righe.
Computer: Lenovo ThinkPad L480
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 362
Iscrizione: venerdì 30 giugno 2006, 1:20
Distribuzione: gentoo
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da Eresia »

\n prima del \t funziona?
emerge --auD --oneshot life/lucky-*
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

si ma andrebbe fatto solo per le opzioni che superano lo spazio occupato da un \t
Computer: Lenovo ThinkPad L480
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

Non credo, però puoi ciclare riga per riga, se supera x caratteri aggiungi "\n\t" altrimenti lasci invariata
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5122617#p5122617][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Non credo, però puoi ciclare riga per riga, se supera x caratteri aggiungi "\n\t" altrimenti lasci invariata
Potresti fare un esempio?
Da notare che \t occupa uno spazio arbitrario.
Computer: Lenovo ThinkPad L480
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

Codice: Seleziona tutto

<?php
// Your code here!
$a = <<<ID
1. elefante\tÈ un animale molto grande
2. cane\tÈ un animale domestico
3. ormitorinco\tÈ un animale bla bla bla...
ID;

foreach (explode(PHP_EOL, $a) as $v) {
    if (strpos($v, "\t") >= 11) {
        print($v);
    } else {
        print(str_replace("\t", "\n\t", $v));
    }
    print(PHP_EOL);
}
Una cosa simile
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5122902#p5122902][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:

Codice: Seleziona tutto

<?php
// Your code here!
$a = <<<ID
1. elefante\tÈ un animale molto grande
2. cane\tÈ un animale domestico
3. ormitorinco\tÈ un animale bla bla bla...
ID;

foreach (explode(PHP_EOL, $a) as $v) {
    if (strpos($v, "\t") >= 11) {
        print($v);
    } else {
        print(str_replace("\t", "\n\t", $v));
    }
    print(PHP_EOL);
}
Una cosa simile
11 da dove proviene?
Computer: Lenovo ThinkPad L480
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

il numero di caratteri contati per l'incolonnamento
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

Li hai contati tu?
Io ho l'impressione che dobbiamo considerarlo un valore arbitrario.
Computer: Lenovo ThinkPad L480
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

Si li ho contati io, dovrai avere un numero X di caratteri nel quale vuoi che vada a capo, o no?
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123870#p5123870][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Si li ho contati io, dovrai avere un numero X di caratteri nel quale vuoi che vada a capo, o no?
Ma questo numero può variare da sistema a sistema, da software a software (da terminale a terminale), da configurazione a configurazione (posso impostarlo a 4, 5, 6...).
Questo numero è arbitrario :)
Computer: Lenovo ThinkPad L480
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

london3 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123908#p5123908][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123870#p5123870][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Si li ho contati io, dovrai avere un numero X di caratteri nel quale vuoi che vada a capo, o no?
Ma questo numero può variare da sistema a sistema, da software a software (da terminale a terminale), da configurazione a configurazione (posso impostarlo a 4, 5, 6...).
Questo numero è arbitrario :)
Tu stesso hai scritto:
Potresti fare un esempio?
Perciò il mio era un esempio esemplificativo... e poi oltretutto non è vero, da terminale a terminale cosa? Tu pensi che 8 caratteri incolonnati nel prompat di windows siano diversi da 8 caratteri incolonnati sul terminale di linux?

Visto le domande (e soprattutto le risposte) che ti poni io comunque ti consiglio di tornare a studiare un pò di basi del linguaggio (che poi è anche un linguaggio molto semplice)
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123977#p5123977][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
london3 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123908#p5123908][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5123870#p5123870][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Si li ho contati io, dovrai avere un numero X di caratteri nel quale vuoi che vada a capo, o no?
Ma questo numero può variare da sistema a sistema, da software a software (da terminale a terminale), da configurazione a configurazione (posso impostarlo a 4, 5, 6...).
Questo numero è arbitrario :)
Tu stesso hai scritto:
Potresti fare un esempio?
Perciò il mio era un esempio esemplificativo... e poi oltretutto non è vero, da terminale a terminale cosa?
bash, sh, ssh (per il remoto), il vecchio telnet: non c'è ne solo uno
Tu pensi che 8 caratteri incolonnati nel prompat di windows siano diversi da 8 caratteri incolonnati sul terminale di linux?
No, ma non è questo il punto.

Visto le domande (e soprattutto le risposte) che ti poni io comunque ti consiglio di tornare a studiare un pò di basi del linguaggio (che poi è anche un linguaggio molto semplice)
Vedi i due file in allegato che valgono più di mille parole.
Allegati
Variabilità di una tabulazione.png
Variabilità di una tabulazione.doc
(9.5 KiB) Scaricato 31 volte
Computer: Lenovo ThinkPad L480
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 362
Iscrizione: venerdì 30 giugno 2006, 1:20
Distribuzione: gentoo
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da Eresia »

puoi simulare qualcosa tipo:

Codice: Seleziona tutto

foreach(preg_split("/((\r?\n)|(\r\n?))/", $a) as $line){
	if (strlen($a)) {
		echo preg_replace('#\t#', '<br>'.'&emsp;&emsp;&emsp;', $line) . "<br>";
	}
}
output:

Codice: Seleziona tutto

1. elefante
   È un animale molto grande
2. cane
   È un animale domestico
3. ormitorinco
   È un animale bla bla bla...
Nel tuo esempio la parola cane non ha N caratteri arbitrari, ma hai scelto tu
emerge --auD --oneshot life/lucky-*
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

Eresia [url=https://forum.ubuntu-it.org/viewtopic.php?p=5125040#p5125040][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:puoi simulare qualcosa tipo:

Codice: Seleziona tutto

foreach(preg_split("/((\r?\n)|(\r\n?))/", $a) as $line){
	if (strlen($a)) {
		echo preg_replace('#\t#', '<br>'.'&emsp;&emsp;&emsp;', $line) . "<br>";
	}
}
<br>?
OK diamo per scontato che siamo in una pagina web, per complicare di più le cose :D
output:

Codice: Seleziona tutto

1. elefante
   È un animale molto grande
2. cane
   È un animale domestico
3. ormitorinco
   È un animale bla bla bla...
Nel tuo esempio la parola cane non ha N caratteri arbitrari,
ehm... diciamo di si

ma hai scelto tu
Infatti ho fatto un'ottima scelta :D :D
Ma cosa ho scelto?!?!? :|
Computer: Lenovo ThinkPad L480
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 362
Iscrizione: venerdì 30 giugno 2006, 1:20
Distribuzione: gentoo
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da Eresia »

scusami ho dato per scontato l'utilizzo di php su pagina web, devi essere più preciso quando formuli un problema.

Hai scritto volutamente "cane" con la tabulazione sulla stessa riga, mentre con gli altri nomi no, quindi hai imposto tu la regola degli 11 caratteri, se vuoi un valore arbitrario puoi utilizzare la grandezza X di una finestra, ma devi utilizzare javascript non php.

La soluzione di tommy è corretta
emerge --auD --oneshot life/lucky-*
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

Eresia [url=https://forum.ubuntu-it.org/viewtopic.php?p=5125125#p5125125][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:scusami ho dato per scontato l'utilizzo di php su pagina web, devi essere più preciso quando formuli un problema.
Starai scherzando?
Hai scritto volutamente "cane" con la tabulazione sulla stessa riga, mentre con gli altri nomi no, quindi hai imposto tu la regola degli 11
Io non ho imposto proprio niente.
caratteri, se vuoi un valore arbitrario puoi utilizzare la grandezza X di una finestra, ma devi utilizzare javascript non php.
Certo mettiamo d'entro anche javascript, un po' di python e un po' ruby :lol: :lol:
Computer: Lenovo ThinkPad L480
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 362
Iscrizione: venerdì 30 giugno 2006, 1:20
Distribuzione: gentoo
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da Eresia »

Ti abbiamo fornito ben due spunti che possono puntare alla soluzione del problema, ora sta te essere in grado di utilizzarli. Chiudo e quoto tommy sullo studio del linguaggio, ciao
emerge --auD --oneshot life/lucky-*
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: [php] incolonnare testo

Messaggio da TommyB1992 »

...Certo mettiamo d'entro anche javascript...
Ma che sei folle? Mischiare PHP e Javascript?
A dir poco rivoluzionario...
Avatar utente
london3
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 555
Iscrizione: domenica 19 gennaio 2014, 16:22
Desktop: ubuntu:GNOME
Distribuzione: Ubuntu 22.04.1 LTS

Re: [php] incolonnare testo

Messaggio da london3 »

TommyB1992 [url=https://forum.ubuntu-it.org/viewtopic.php?p=5125578#p5125578][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
...Certo mettiamo d'entro anche javascript...
Ma che sei folle? Mischiare PHP e Javascript?
A dir poco rivoluzionario...
Si può far funzionare JS in ambito cli?
Computer: Lenovo ThinkPad L480
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti