Newsgroup: it.comp.www.php
Titolo: Espressioni regolari, queste sconosciute

Salve a tutti,
premetto che ci ho provato più e più volte a risolvere questo problema, 
ma proprio non ne arrivo a capo:
ho in una variabile una stringa di lunghezza tot. Vorrei quindi che in 
una seconda variabile vi comparissero soltanto le prime 5 parole seguite 
da 3 puntini di sospensione. Ora, per fare ciò, userei il parametro \w !
Però non funziona: sembra che il parametro \w non identifichi la 
"parola" come tutti quei caratteri interposti a due spazi... Non vorrei 
che nella documentazione il termine "parola" sia una traduzione del 
"word" inteso come viene inteso in Assembler... :/
-- 
Liuk - Cavaliere Jedi | Ex allievo della maestra Alkaid
Email: 
li...@fanwars.it
 - Home Page: 
http://www.fanwars.it
Padre mufhd0 che sei nei server, sia santificato il tuo
hostname, venga il tuo broadcast, sia fatta la tua
configurazione così in linux come in BSD. Dacci oggi il
nostro source quotidiano e rimetti a noi i nostri codici
come noi li rimettiamo ai nostri sviluppatori e non indurci
in segfault ma liberaci da Microsoft.

 traduzione del "word" inteso come viene inteso in Assembler... :/
[quoto dal manuale]
\w
any "word" character 
\W
any "non-word" character 
...
A "word" character is any letter or digit or the underscore character,
that is, any character which can be part of a Perl "word".
[/quoto]
Senza scomodare le regex puoi utilizzare explode, for e "."
-- 
I'am what I'am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1

 Senza scomodare le regex puoi utilizzare explode, for e "."
Uhm...
for e "." = ?????
-- 
Liuk - Cavaliere Jedi | Ex allievo della maestra Alkaid
Email: 
li...@fanwars.it
 - Home Page: 
http://www.fanwars.it
Padre mufhd0 che sei nei server, sia santificato il tuo
hostname, venga il tuo broadcast, sia fatta la tua
configurazione cosě in linux come in BSD. Dacci oggi il


 for e "." = ?????
Eh che criptica :)
<?php
// 
http://www.lipsum.com
$string = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Aliquam et quam eget justo sollicitudin convallis.";
$string_arr = explode (" ", $string);
$result = "";
for ($i = 0; ($i<5) && ($i<count($string_arr)); $i++)
{ $result .= $string_arr[$i] . " "; }
$result .= "...";
print ($result);
?>


 print ($result);
Uhm, verissimo, corto, semplice, veloce ed efficace! :D
Grazie mille!
Ma sinceramente da for e "." non ci sarei mai arrivato! ;)
Grazie ancora!
-- 
Liuk - Cavaliere Jedi | Ex allievo della maestra Alkaid
Email: 
li...@fanwars.it
 - Home Page: 
http://www.fanwars.it
Padre mufhd0 che sei nei server, sia santificato il tuo
hostname, venga il tuo broadcast, sia fatta la tua
configurazione così in linux come in BSD. Dacci oggi il


 IFSW ha una nuova casa! 
What does it means?


 What does it means?
Una lunga storia... Tempo fa moderarono it.fan.starwars perché covo di 
troll (non credo però che siano mai giunti qui) ed il ng è praticamente 
morto... Ora ci siamo spostati tutti in it-alt.fan.starwars e lì stiamo 
ricominciando finalmente a parlare :D


 it-alt.fan.starwars e ll stiamo ricominciando finalmente a parlare :D
Avevo seguito la storia da lurker e successivamente ho abbandonato IFSW
(come tanti altri).
Sono felice della rinascita dalle ceneri =)


 da 3 puntini di sospensione. Ora, per fare ciò, userei il parametro \w !
Per fare quello che ti serve ti consiglio di usare un metodo simile che ti
consente di avere delle stringhe più simili (se hai frasi con parole corte o
lunghe il risultato è più omogeneo). Non l'ho testato.
function trimSpecial($stringa, $maxchar = 75) {
  if (strlen($stringa) > $maxchars) {
    $stringa = substr($stringa, 0, $maxchars);
    $arr = explode(" ",$stringa);
    $arr[count($arr) - 1] = "...";
    $stringa = implode(" ",$stringa);
  }
  return $stringa;
}
$stringa1 = "Tale resistenza dipende prevalentemente dalla velocità invece
che dalla posizione e non è una forza conservativa";
$stringa2 = "Non ci sto a far si che sia tu che il tuo amico siate infelici,
perciò vi regalo un peluche";
$stringa3 = "Questa è corta"; // non servono i puntini
echo trimSpecial($stringa1, 50);
echo trimSpecial($stringa2, 50);
echo trimSpecial($stringa3, 50);
Quello che faccio è tagliare la frase ad un tot di caratteri, quindi
togliere l'ultimo pezzetto di parola (è probabile che sia stata spezzata) ed
aggiungere i puntini.
Ludovico Grossi

 }
Ludovico

 > function trimSpecial($stringa, $maxchar = 75) {
Grazie! :D
