phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Togliere parola da tabella database

Supporto per phpBB 3.0.x.
Avatar utente
Il Freddo
Utente
Utente
Messaggi: 137
Iscritto il: 23/05/2011, 8:40
Sesso: Maschio
Versione: 3.0.8
Server: UNIX/Linux
PHP: 5.2.17

Togliere parola da tabella database

Messaggio da Il Freddo » 06/09/2012, 17:28

Supponiamo che ho la parola pippo nel campo post_text in tutti i 50.000 post della tabella phpbb_posts.

Che query devo fare per toglierla?

Per la precisione sarebbe un bbcode personalizzato, ma anche togliendolo rimangono nel post [pippo] .. [/pippo]

Quindi volevo solo togliere [pippo] e [/pippo] Grazie

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Togliere parola da tabella database

Messaggio da Barrnet » 06/09/2012, 18:54

Non puoi, i singoli bbcode sono salvati in maniera differente, per esempio [pippo:ogogj]testo[/pippo] per renderli identificabili.
Se vuoi rimuovere dei bbcode non più in uso mi pare che ci sia un tool apposito, forse nell'stk.

Avatar utente
Il Freddo
Utente
Utente
Messaggi: 137
Iscritto il: 23/05/2011, 8:40
Sesso: Maschio
Versione: 3.0.8
Server: UNIX/Linux
PHP: 5.2.17

Re: Togliere parola da tabella database

Messaggio da Il Freddo » 06/09/2012, 19:07

Barrnet ha scritto:Non puoi, i singoli bbcode sono salvati in maniera differente, per esempio [pippo:ogogj]testo[/pippo] per renderli identificabili.
Se vuoi rimuovere dei bbcode non più in uso mi pare che ci sia un tool apposito, forse nell'stk.
si, ma se tolgo il tag dell bbcode risolvo

il tag è l'HIDE, se lo tolgo ho i link visibili, ma devo togliere anche le parole [HIDE] e [/HIDE], altrimenti stanno male

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Togliere parola da tabella database

Messaggio da Micogian » 06/09/2012, 20:46

Bisognerebbe controllare come viene salvato il bbcode nel database, penso che abbia ragione Barnett, cioè che ai tag del bbcode viene aggiunto il bbcode_uid che cambia ad ogni post.
Si potrebbe anche realizzare un file php che controlla qual'è il bbcode_uid ma ci potrebbe essere una soluzione più semplice, lavorare sul risultato del testo.

Il testo dei post è ricavato dalla variabile

Codice: Seleziona tutto

'MESSAGE'			=> $message,
nel file viewtopic.php

Se usiamo il comando preg_replace() possiamo togliere i bbcode dalla visualizzazione.
In pratica restano dove sono ma nel testo non compaiono i tags
Bisogna usare le "Espessioni regolari" (REGEXP)

Codice: Seleziona tutto

'MESSAGE'			=> preg_replace('/\[HIDE\](.+)\[\/HIDE\]/', '$1', $message),
e la variabile 'MESSAGE' verrà visualizzata senza i tag e solo con il contenuto ($1)

Ovviamente va tolto il bbcode [HIDE] altrimenti non compare nella variabile 'MESSAGE'

Avatar utente
Il Freddo
Utente
Utente
Messaggi: 137
Iscritto il: 23/05/2011, 8:40
Sesso: Maschio
Versione: 3.0.8
Server: UNIX/Linux
PHP: 5.2.17

Re: Togliere parola da tabella database

Messaggio da Il Freddo » 06/09/2012, 21:01

ci provo, ma ragioniamo solo che voglio togliere le parole [hide] e [/hide], senza considerarlo un bbcode

devo togliere in Tutti i post, quindi solo con una query

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Togliere parola da tabella database

Messaggio da Micogian » 06/09/2012, 21:06

Il Freddo ha scritto:ci provo, ma ragioniamo solo che voglio togliere le parole [hide] e [/hide], senza considerarlo un bbcode

devo togliere in Tutti i post, quindi solo con una query
e infatti il preg_replace sostituisce una stringa, non un bbcode.
Non è una query, è una funzione che sostituisce le stringhe [hide] e [/hide] con "nulla".
Ma nel database la stringa rimane.

Fai questo file di prova, chiamalo prova.php o come vuoi e poi lancialo, vedrai il risultato

Codice: Seleziona tutto

<?php
    $testo_completo = "Prova di eliminazione di una stringa inserita in un testo:   [hide]pippo[/hide] ";
    $testo_pulito = preg_replace('/\[hide\](.+)\[\/hide\]/', '$1', $testo_completo);
echo "Testo originale: " . $testo_completo . "<br />";
echo "Testo pulito: " . $testo_pulito . "<br />"; 
?>

Avatar utente
Il Freddo
Utente
Utente
Messaggi: 137
Iscritto il: 23/05/2011, 8:40
Sesso: Maschio
Versione: 3.0.8
Server: UNIX/Linux
PHP: 5.2.17

Re: Togliere parola da tabella database

Messaggio da Il Freddo » 06/09/2012, 21:11

provato nel viewtopic il comando di prima, ma rimane comunque visibile nella segnalazione

questo nuovo non fa nulla io devo togliere [hide] e [/hide] non pippo
Ultima modifica di Il Freddo il 06/09/2012, 21:15, modificato 1 volta in totale.

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Togliere parola da tabella database

Messaggio da Micogian » 06/09/2012, 21:13

La segnalazoione non è 'MESSAGE'

Avatar utente
Il Freddo
Utente
Utente
Messaggi: 137
Iscritto il: 23/05/2011, 8:40
Sesso: Maschio
Versione: 3.0.8
Server: UNIX/Linux
PHP: 5.2.17

Re: Togliere parola da tabella database

Messaggio da Il Freddo » 06/09/2012, 21:17

Micogian ha scritto:La segnalazoione non è 'MESSAGE'
segnalazione, topic, chiamalo come vuoi, la scheda del film, uguale

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: Togliere parola da tabella database

Messaggio da Micogian » 06/09/2012, 21:20

Userà un'altra variabile, io non posso saperlo, devi guardarci e usare lo stesso sistema di MESSAGE

Nel post funziona ? se funziona con la variabile MESSAGE deve funzionare anche con le altre, basta sapere quali sono.

Rispondi

Torna a “[3.0.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Nessuno e 30 ospiti