Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][BBCode] Zamiana linku bbcode na php
Xardas93
post 5.07.2013, 13:40:48
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2013

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


Witam

Wiem, że temat był już poruszany i że odpowiadano na niego, jednak żadna odpowiedź nie pomogła mi rozwiązać problemu. Chodzi najpewniej o skomplikowany link, który muszę zamienić.

Forum wysyła treść postów do bazy danych. Chcę, żeby treści niektórych postów wyświetlały się na stronie. Poradziłem sobie ze wszystkimi kodami, za wyjątkiem jednego: url.

Cytat
[url=http://nazwastrony.pl/forum/viewtopic.php?f=151&t=1955:1xlfjr8l]TU TREŚĆ WYŚWIETLANA, KLIKALNY LINK[/url:1xlfjr8l]


Próbowałem stosować funkcję preg_replace, ale jestem amatorem i niestety nie potrafię sobie sam z tym poradzić. Chodzi rzecz jasna o to, aby na stronie w php link wyświetlał się prawidłowo. Widoczne ma być: TU TREŚĆ WYŚWIETLANA, KLIKALNY LINK, zaś odsyłać ma do strony: http://nazwastrony.pl/wyswietl.php?p=1955 (tutaj wartość parametru p jest równa wartości t z linku).

Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
buliq
post 5.07.2013, 14:31:42
Post #2





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


Po co masz w tagu :1xlfjr8l questionmark.gif?


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
Go to the top of the page
+Quote Post
gothye
post 5.07.2013, 14:42:00
Post #3





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


Cytat(buliq @ 5.07.2013, 15:31:42 ) *
Po co masz w tagu :1xlfjr8l questionmark.gif?



to jest UID dla tagów BBCode ,zapewne forum oparte o phpbb


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
Xardas93
post 5.07.2013, 16:30:12
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2013

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


Dokładnie tak, jak mówi gotye. Dodaje mi coś takiego do tagów. Forum phpbb.
Go to the top of the page
+Quote Post
_Borys_
post 5.07.2013, 18:50:18
Post #5





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


Czy chcesz link wpisać w tagi <a></a> czy tylko wymienić opis w tym co podałeś ?
Go to the top of the page
+Quote Post
Xardas93
post 5.07.2013, 19:00:41
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2013

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


Tak, chcę wpisać go w tagi <a></a>. Na stronie ma powstać link, który będzie można kliknąć.

Dzięki za zainteresowanie tematem wink.gif
Go to the top of the page
+Quote Post
_Borys_
post 5.07.2013, 19:05:03
Post #7





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


  1. <?php
  2.  
  3. $url = '[url=http://nazwastrony.pl/forum/viewtopic.php?f=151&t=1955:1xlfjr8l]Welcome[/url:1xlfjr8l]';
  4. $link = preg_replace('/\[url=(.+)\?.+=\d+&.+=(\d+).+\]/','<a href="$1?p=$2">TU TREŚĆ WYŚWIETLANA, KLIKALNY LINK</a>', $url);
  5. echo $link;
  6.  
  7. ?>
Go to the top of the page
+Quote Post
Xardas93
post 5.07.2013, 19:22:22
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2013

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


OK - działa dla tego konkretnego przykładu. Co jednak, jeśli chciałbym, żeby to, co wyświetlane, zależało od tego, jak wygląda wpisany w bazie link? Mam na myśli, na przykładzie, który podałeś: w linku z bbcode jest widoczna w poście treść: Welcome. Chciałbym, żeby na mojej stronie również widoczne było: Welcome. Ale ma to być funkcja uniwersalna, tzn. jeśli ktoś w poście wstawi linka z opisem: Borys, na stronie ma wyświetlić się Borys. Bo teraz opis jest na sztywno przyporządkowany.

A i link miał odsyłać do tylko do strony, a nie forum - czyli do http://www.costam.pl/zobacz.php?p=1749 a nie do http://www.costam.pl/forum/viewtopic.php?p=1749 Ale z tym sobie chyba sam poradzę smile.gif

Dzięki wielkie za pomoc! (I klikam: pomógł, oczywiście smile.gif )
Go to the top of the page
+Quote Post
_Borys_
post 5.07.2013, 20:25:26
Post #9





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

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


W pierwszym poście pisałeś, że na sztywno opis to tak zrobiłem.
Poprawione
  1. <?php
  2.  
  3. $url = '[url=http://nazwastrony.pl/forum/viewtopic.php?f=151&t=1955:1xlfjr8l]Welcome[/url:1xlfjr8l]';
  4. $pattern = '/\[url=(http:\/\/.+?\/).+\?.+=\d+&.+=(\d+).+\](.+)\[.+/';
  5. $replacement = '<a href="$1zobacz.php?p=$2">$3</a>';
  6. $link = preg_replace($pattern, $replacement, $url);
  7. echo $link;
  8.  
  9. ?>
Go to the top of the page
+Quote Post
Xardas93
post 5.07.2013, 21:26:43
Post #10





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 5.07.2013

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


Działa idealnie! Wielkie dzięki za pomoc! smile.gif

EDIT: Stosując tę funkcję muszę jednak - w razie, gdy ktoś poda linka w poście - edytować stronę; bo zmienia się zawsze zmienna $url. Czy da się zrobić tak, żeby to szło z automatu? Chodzi mi o to, żeby skrypt samodzielnie wyszukał w dowolnej treści linki w bbcode (np.
[url=http://nazwastrony.pl/forum/viewtopic.php?f=151&t=1955:1xlfjr8l]Pomoc 1[/url:1xlfjr8l]
[url=http://nazwastrony.pl/forum/viewtopic.php?f=208&t=2044:jsy3hs73]Pomoc 2[/url:jsy3hs73]
[url=http://nazwastrony.pl/forum/viewtopic.php?f=288&t=3855:jsp302pd]Pomoc 3[/url:jsp302pd] )

I każdy poprawnie zamienił bez potrzeby definiowania za każdym razem właściwie zmiennej $url ręcznie.

Ten post edytował Xardas93 6.07.2013, 00:26:40
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: 15.06.2025 - 07:20