- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto operazione stringa
-
Aiuto operazione stringa
Come faccio a prendere da questa stringa qui sotto la stringa che ho selezionato in grassetto?
ciafsdgfghsgbvtgl km mlksdtkbml [TAG]baubau[/TAG]dmng hjyjktfiuyokjhk
-
Questa mi sembra la migliore:
int strpos ( string haystack, mixed needle [, int offset] ) Restituisce la posizione numerica della prima occorrenza di needle nella stringa haystack. Differentemente rispetto a strrpos(), questa funzione considera tutta la stringa needle, e, quindi, cercherà tutta la stringa. Se needle non viene trovato strpos() restituirà boolean FALSE.
[url=http://www.php.net/manual/it/function.strpos.php]strpos()
Altrimenti fai da te: [url=http://www.php.net/manual/it/ref.strings.php]Stringhe
-
@ico1989 said:
Questa mi sembra la migliore:
int strpos ( string haystack, mixed needle [, int offset] ) Restituisce la posizione numerica della prima occorrenza di needle nella stringa haystack. Differentemente rispetto a strrpos(), questa funzione considera tutta la stringa needle, e, quindi, cercherà tutta la stringa. Se needle non viene trovato strpos() restituirà boolean FALSE.
[url=http://www.php.net/manual/it/function.strpos.php]strpos()
Altrimenti fai da te: [url=http://www.php.net/manual/it/ref.strings.php]Stringhe
allora nn offenderti eh ma se devi dare aiuto così meglio che non lo dai... guarda da te
int strpos ( string haystack, mixed needle [, int offset] )
INT quindi ritorna un intero nn certo la stringa che volevo ma la posizione. Inoltre le funzioni come forse sai non sono tutte e per quello che chiedo io sono necessari i regex
-
@denadai2 said:
allora nn offenderti eh ma se devi dare aiuto così meglio che non lo dai... guarda da te
int strpos ( string haystack, mixed needle [, int offset] )
INT quindi ritorna un intero nn certo la stringa che volevo ma la posizione. Inoltre le funzioni come forse sai non sono tutte e per quello che chiedo io sono necessari i regex
forse voleva usare strpos in combinazione con strstr ma non è il caso... usa le espressioni regolari!preg_match_all('|[(TAG)](.+)[(TAG)]|iu', $pagliaio, risultati);
non testata, l'ho scritta al volo... ma dovrebbe andare. Dai un'occhiata a:
it.php.net/regex per le espressioni regolari POSIX-estesa ( sono lente... no te le consiglio );
ed a:
it.php.net/pcre per le espressioni regolari PERL-compatibili.
-
@PaTeR said:
forse voleva usare strpos in combinazione con strstr ma non è il caso... usa le espressioni regolari!
preg_match_all('|[(TAG)](.+)[(TAG)]|iu', $pagliaio, risultati);
non testata, l'ho scritta al volo... ma dovrebbe andare. Dai un'occhiata a:
it.php.net/regex per le espressioni regolari POSIX-estesa ( sono lente... no te le consiglio );
ed a:
it.php.net/pcre per le espressioni regolari PERL-compatibili.
perfetto.. con una piccola modifica va (ti eri dimenticato il /TAG chiuso.. cmq il problema ora mi si prensenta se nel pagliaio ci sono più tag e io devo modificare ognuno di essi
-
Allora credo di non aver capito qual è il tuo obiettivo..
@denadai2 said:
Come faccio a prendere da questa stringa qui sotto la stringa che ho selezionato in grassetto?
ciafsdgfghsgbvtgl km mlksdtkbml [TAG]baubau[/TAG]dmng hjyjktfiuyokjhk
-
se vuoi leggere quanto sta racchiuso tra i tag l'unica strada "comoda" è l'espressione regolare.
il "comoda" è preceduto da un buono studio
-
@denadai2 said:
perfetto.. con una piccola modifica va (ti eri dimenticato il /TAG chiuso.. cmq il problema ora mi si prensenta se nel pagliaio ci sono più tag e io devo modificare ognuno di essi
se devi modificarli forse puoi usare la funzione preg_replace
ora però devi specificare meglio cosa devi fare
-
@denadai2 said:
perfetto.. con una piccola modifica va (ti eri dimenticato il /TAG chiuso.. cmq il problema ora mi si prensenta se nel pagliaio ci sono più tag e io devo modificare ognuno di essi :(eh si scusami mi ero dimenticato...
Non capisco la tua seconda richiesta...
-
parto con il dire che nn riesco a capire come fare le espressioni regolari nn le capisco molto (so quelle basilari... ho fatto il rewrite in apache)
cmq ho visto una dozzina di siti e nn riesco.
Il mio scopo è modificare una stringa tra i tag [TAG] e [/TAG] in modo da fare il syntax highlighting.
Per fare ciò devo modificare la stringa e richiamare una funzione di una libreria esterna.
Io vi sto chiedendo come prendere quella stringa sapendo che i tag possono essere più di uno a pagina. (di conseguenza serve un'espressione regolare che funzioni sempre, sia con 0 tag, sia con 1 sia con 1000)
Grazie spero di essermi spiegato perchè sto sbattendo la testa sul muro
-
@denadai2 said:
parto con il dire che nn riesco a capire come fare le espressioni regolari nn le capisco molto (so quelle basilari... ho fatto il rewrite in apache)
cmq ho visto una dozzina di siti e nn riesco.
Il mio scopo è modificare una stringa tra i tag [TAG] e [/TAG] in modo da fare il syntax highlighting.
Per fare ciò devo modificare la stringa e richiamare una funzione di una libreria esterna.
Io vi sto chiedendo come prendere quella stringa sapendo che i tag possono essere più di uno a pagina. (di conseguenza serve un'espressione regolare che funzioni sempre, sia con 0 tag, sia con 1 sia con 1000)
Grazie spero di essermi spiegato perchè sto sbattendo la testa sul muro
preg_replace("|[(TAG)](.+)[/(TAG)]|iu", "<a style='border=1px;'>//1</a>", $pagliaio);
Dovrebbe funzionare... Sennò prova con
preg_replace("|[(TAG)](.+)[/(TAG)]|iu", "<a style='border=1px;'>//2</a>", $pagliaio);
Ciaooo!
-
@PaTeR said:
preg_replace("|[(TAG)](.+)[/(TAG)]|iu", "<a style='border=1px;'>//1</a>", $pagliaio);
Dovrebbe funzionare... Sennò prova con
preg_replace("|[(TAG)](.+)[/(TAG)]|iu", "<a style='border=1px;'>//2</a>", $pagliaio);
Ciaooo!
no non ci siamo ancora io voglio la stringa contenuta da i tag, non voglio sostituire qualcosa a [TAG] e [/TAG]
hai per caso capito?
-
grazie a chi ha tentato almeno di aiutare tipo pater
$output='{html}** some html **{/html}'; $languages = array('php', 'css', 'html4strict', 'c'); foreach ( $languages as $language ) { $regex = "#\{$language\}(.*?)\{/$language\}#smiU"; preg_match_all($regex, $output, $codes); for ( $i = 0; $i < count($codes[0]); $i++) { $geshi = new GeSHi($codes[1][$i], $language, 'lib/geshi'); $output = str_replace($codes[0][$i], $geshi->parse_code(), $output); unset($geshi); } } echo $output;
-
Mi spieghi un pò cosa volevi fare? Un esempio pratico sarebbe perfetto... Così vedo dove ho sbagliato! eheheh
-
@PaTeR said:
Mi spieghi un pò cosa volevi fare? Un esempio pratico sarebbe perfetto... Così vedo dove ho sbagliato! eheheh
prova il codice che ho postato e vedrai
scarica geshi da qui http://qbnz.com/highlighter/
magari ti può tornare pure utile
-
@denadai2 said:
prova il codice che ho postato e vedrai
scarica geshi da qui http://qbnz.com/highlighter/
magari ti può tornare pure utile Ah ok! Cmq grazie!
-
@denadai2 said:
no non ci siamo ancora io voglio la stringa contenuta da i tag, non voglio sostituire qualcosa a [TAG] e [/TAG]
hai per caso capito?
per quel che vale...
mi sembra che il codice postato da Pater facesse quello che volevi. Infatti non sostituisce i tag, ma ne inserisce uno interno con uno stile particolare...Cmq ora hai risolto, meglio così...
ciao