Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql/html]Indeks górny w danych z bazy?
Myszkina
post 3.05.2007, 15:05:27
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.11.2006

Ostrzeżenie: (0%)
-----


[php][sql][html]
Witam
Czy jest możlie aby w wyświetlonym tekscie z bazy danych jakiś fragment tekstu był sformatowany na indeks górny.
dla przykładu:
w bazie mam umieszczony tekst np. "Mała myszka szuka sera, Gouda[a] albo Radamera[b]" i tak również wyświetla sie na stronie.
i tak [a] oraz [b] oznaczaja indeks górny a i b , bo nie wiem jak zrobić aby było wyświetlone jak poniżej i czy wogóle coś takiego można zrobić
Mała myszka szuka sera, Goudaa albo Radamerab

Z góry dzieki za jakakolwiek pomoc
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 15:08:41
Post #2





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

Ostrzeżenie: (0%)
-----


Jasne że się da tylko nie [sup] tylko <sup>


--------------------
Go to the top of the page
+Quote Post
Myszkina
post 3.05.2007, 15:15:22
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.11.2006

Ostrzeżenie: (0%)
-----


tyle to wiem tutaj dla przykładu chciałam zastosowac bbcode ale nie zadziałał
wywołuje teks z bazy danych poprzez php każde zdanie lub kilka zdań jest jednym rekoredm.
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 15:19:12
Post #4





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

Ostrzeżenie: (0%)
-----


to musisz albo zastosować wyrażenia regularne albo str_replace

Dla przykładu
  1. <?php
  2. print str_replace('[sup]','<sup>',$tekst);
  3. ?>


--------------------
Go to the top of the page
+Quote Post
Myszkina
post 3.05.2007, 16:01:16
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.11.2006

Ostrzeżenie: (0%)
-----


wielkie dzięki zadziałało musiałam zrobić małą modyfikacje , ale jeszcze jedno pytanko teraz zmienia mi tylko z takiego zapisu "[1]" na własciwy indeks górny czyli "<sup>1</sup>" i u siebie zrobiłam to tak
Kod
$zawartosc = stripslashes($row['zawartoscdok']);
$zmiana = str_replace("[1]", "<sup>1</sup>", $zawartosc);

ale w tym tekscie mam inne znaki np. [2], [3], [a],[b], które musze zmienic na te indeksy górne jak to zrobić prosto bez stosowania wielu zmiennych
Go to the top of the page
+Quote Post
wipo
post 3.05.2007, 16:03:01
Post #6





Grupa: Zarejestrowani
Postów: 856
Pomógł: 19
Dołączył: 30.08.2005
Skąd: 100lica

Ostrzeżenie: (0%)
-----


Poczytaj tutaj o wyrażeniach regularnych
http://pl.php.net/manual/pl/function.preg-replace.php


--------------------
Go to the top of the page
+Quote Post
Myszkina
post 3.05.2007, 20:23:50
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.11.2006

Ostrzeżenie: (0%)
-----


sadsmiley02.gif
troche mi pomogło ale te wyrażenia regularne to dla mnie narazie czarna magia udało mi sie cos takiego , ale czy nie da sie tego jakoś uprościć musze pozamieniac tak kilknascie rekordów w różnych tabelach , a prócz cyfr mam jeszcze w tekscie do podmiany przy wyświetleniu coś takiego [a] , [a-a]
Kod
$zawartosc = stripslashes($row['zawartoscdok']);
$wzorzec = array(    '/\[1\]/','/\[2\]/','/\[3\]/','/\[4\]/','/\[5\]/','/\[6\]/','/\[7\]/','/\[8\]/','/\[9\]/','/\[10\]/');
$zamiana = array(    '<sup><small>1</small></sup>','<sup><small>2</small></sup>','<sup><small>3</small></sup>','<sup><small>4</small></sup>','<sup><small>5</small></sup>','<sup><small>6</small></sup>','<sup><small>7</small></sup>','<sup><small>8</small></sup>',
         '<sup>9</sup>','<sup>10</sup>');

$zawartosc = preg_replace($wzorzec, $zamiana, $zawartosc);
Go to the top of the page
+Quote Post
eai
post 4.05.2007, 02:18:00
Post #8





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

Ostrzeżenie: (0%)
-----


  1. <?php
  2.  
  3. $zawartosc = preg_replace('/[sup](.*)[sup]/si', '<sup>1</sup>', $zawartosc);
  4. ?>

Pisane z palca, ale powinno zadziałać
Go to the top of the page
+Quote Post
Myszkina
post 5.05.2007, 10:31:29
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 18.11.2006

Ostrzeżenie: (0%)
-----


smile.gif
Dzieki eai i wipo poczytałam troche a potem zmodyfikowałam ten kod od eai
Cytat
Kod
<?php
$zawartosc = preg_replace('/\[sup\](.*)\[sup\]/si', '<sup>\\1</sup>', $zawartosc);
?>

na taki
Kod
$zawartosc1 = preg_replace('/\[(.*?)\]/si', '<sup>\\1</sup>', $zawartosc);
i działa tak jak chciałam , czyli z wyrazenia [1] zmienia mi na indeks gorny 1.
zrobiłam jeszcze drugi kod do zamieniana takich [a] ,[a-],[-a] (tutaj zamias "a" w nawiasach kwadratowych może być jakaś mała litera)wyglada tak i działa
Kod
<?php
preg_replace('/\[(.-?.)\]|\[(.-?)\]/si', '<sup>\\1\\2</sup>', $zawartosc);
?>


z tym że chciała bym aby nie zmieniał wogóle jak występuje [s] jak dołaczyć takie wykluczenie do tego co mam

z góry dzieki

udało się
zrobiłam tak
Kod
<?php
$zmienna=preg_replace('/\[(.?[^s].?)\]/si', '<sup>\\1</sup>', $zmienna);?>


biggrin.gif DZIĘKI

Ten post edytował Myszkina 4.05.2007, 21:46:20
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 08:40