• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Tagliare testo in due e inserirci un banner in mezzo

Scoprimi

Utente Medio
Autore del topic
23 Ottobre 2010
249
10
Miglior risposta
0
conoscete una script in php che tagli il testo all'interno della variabile in due e nel mezzo ci metta un banner?
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Beh, basta calcolare il numero di caratteri (
Perfavore, Entra oppure Registrati per vedere i Link!
), trovare la metà, creare le due substringhe (
Perfavore, Entra oppure Registrati per vedere i Link!
) e in mezzo inserirvi il banner.
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Beh, basta calcolare il numero di caratteri (
Perfavore, Entra oppure Registrati per vedere i Link!
), trovare la metà, creare le due substringhe (
Perfavore, Entra oppure Registrati per vedere i Link!
) e in mezzo inserirvi il banner.
Grazie Kaito ho utilizzato le funzioni strlen e floor, il problema è che stronca il testo nel senso che, a metà testo, si taglia la parola interessata a metà. Ad esempio "cro banner ciera", non si può fare in modo che il banner si inserisca a fine parola?
 
Ultima modifica:
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Vediamo, diciamo che OBJ è la prima substring. Tramite end(explode(" ", OBJ)) prelevi l' ultima parola (quella tagliata) e ottieni SF, poi con preg_match prelevi la parola completa mettendo come primo elemento SF e come secondo elemento il testo completo (TC), creando qualcosa tipo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Da qua basta fare uno str_replace di SF con $parola all' interno di OBJ, poi fai lo str_replace dell' altra metà di parola (fai lo stesso procedimento del preg_match, diciamo che invece di fare end(explode(" ", OBJ2)) dove OBJ2 è la seconda substring, devi prelevare il primo elemento, quindi explode(" ", OBJ2)[0], ovviamente li sto mettendo così, poi dovrai creare gli array e applicare tutto), fare il preg_match del risultato (SF2) simile a questo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

E fai uno str_replace di $parola2 con nulla all' interno di OBJ2.. Mi sono un po' perso nel discorso ma credo che vada.
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Grazie, il problema è che non sono molto bravo con le funzioni del php, ma ci provo lo stesso, domani se non riesco te lo dirò, grazie ancora!
--------------- AGGIUNTA AL POST ---------------
Vediamo, diciamo che OBJ è la prima substring. Tramite end(explode(" ", OBJ)) prelevi l' ultima parola (quella tagliata) e ottieni SF, poi con preg_match prelevi la parola completa mettendo come primo elemento SF e come secondo elemento il testo completo (TC), creando qualcosa tipo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Da qua basta fare uno str_replace di SF con $parola all' interno di OBJ, poi fai lo str_replace dell' altra metà di parola (fai lo stesso procedimento del preg_match, diciamo che invece di fare end(explode(" ", OBJ2)) dove OBJ2 è la seconda substring, devi prelevare il primo elemento, quindi explode(" ", OBJ2)[0], ovviamente li sto mettendo così, poi dovrai creare gli array e applicare tutto), fare il preg_match del risultato (SF2) simile a questo:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

E fai uno str_replace di $parola2 con nulla all' interno di OBJ2.. Mi sono un po' perso nel discorso ma credo che vada.
@Kaito
Non ci riesco... :emoji_alien:
Altrimenti si può fare che il banner viene messo dopo il punto più vicino alla metà? questo è come ho messo il codice attualmente, come si risolve?
$stringa = "{$post['message']}";
$lung_stringa = strlen($stringa);
$meta_stringa = floor($lung_stringa/2);

$str1 = substr($stringa, 0, $meta_stringa);
$str2 = substr($stringa, $meta_stringa);

$postend = $str1.$ads3.$str2;
echo $postend;
 
Ultima modifica:
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Ehm, che roba è "{$post['message']}" ? lol..

Basta: $_POST['message'];

Comunque stavo pensando.. Potremmo contare le PAROLE (quindi con gli spazi) e non i caratteri, almeno verrebbe già tutto fatto diciamo, che te ne pare? @Scoprimi
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

@Kaito si meglio, è messo in quel modo perché è un plugin mybb. Come si contano le parole?
 
Ultima modifica:
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Ecco il codice, molto semplice, l' ho commentato per farti capire meglio. Le parole le calcoli facendo un explode degli spazi e contando poi (con count()) il numero di elementi presenti nell' array.

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Funziona Grandissimo! Se volessi evitare questo procedimento quando ci sono poche parole devo mettere un if ceil(round(count($arr) > 50 ?
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Sì diciamo che fai un controllo, lascia uguale fino ad $arr etc. etc, poi prima di $chars scrivi:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Quando hai risolto fammelo sapere così sposto e rinomino :emoji_slight_smile: @Scoprimi
 
Ultima modifica:
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Grazie mille, puoi chiudere.
 
Riferimento: Tagliare testo in due e inserirci un banner in mezzo

Va bene, cambio prefix e sposto come richiesto dato che il problema è risolto :emoji_slight_smile:

2i9ow2v.jpg