Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [BBCode] Dodatkowe atrybuty obrazków
Grzyw
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Mam standardowo zaimplementowane osadzanie obrazków w edytorze BBCode, poprzez funkcję:
  1. <?php
  2. $str = preg_replace("#[img](.*?)[/img]#si", "<img src="1" border="0" alt="Obrazek" />", $str)
  3. ?>


Zatem w edytorze kod wstawiający obrazek ma postać:


Chciałbym uzyskać przetworzenie kodu:
  1. [img width=nnn height=nnn]src.jpg[/img]

Niestety, nie potrafię przerobić funkcji preg_replace() w odpowiedni sposób.

Dlatego proszę Was o wskazówkę:)
Go to the top of the page
+Quote Post
starach
post
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Nie testowane:
'#\[img width=([^ ]*) height=([^\]]*)\]([^\[]+)\[/img\]#'
Go to the top of the page
+Quote Post
Grzyw
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Niestety, moja implementacja nie działa. Zrobiłem bałagan (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Mam kod:

  1. <?php
  2. $tekst='[img width=43 height=435]source[/img]';
  3. echo "Przed: ".$tekst;
  4. $tekst= preg_replace('#[img width=([^ ]*) height=([^]]*)]([^[]+)[/img]#', "<img src='2' width='0' height='1' />", $tekst);
  5. echo "<br />Po: ".$tekst;
  6. ?>


W efekcie dostaję:
Kod
<img src=\"435\" width="[img width=43 height=435]source[/img]\" height="43\" />


Mogę prosić o wskazanie błędów?
Go to the top of the page
+Quote Post
Kicok
post
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Tekst znaleziony "pod pierwszym nawiasem okrągłym" dostępny jest jako \\1
Tekst znaleziony "pod drugi nawiasem okrągłym" dostępny jest jako \\2
itd.

Pod \\0 dostępny jest tekst podasowany co całego wyrażenia.


PS. Ten kod nie wyłapie ci tagów bez podanej szerokości i wysokości, tagów z podaną tylko szerokością, tagów z podaną tylko wysokością i tagów z wysokością podaną przed szerokością.
Na pewno da się to wszystko odczytać przy pomocy jednego wyrażenia, ale łatwiej ci będzie rozbić to na kilka
Go to the top of the page
+Quote Post
abc667
post
Post #5





Grupa: Zarejestrowani
Postów: 229
Pomógł: 0
Dołączył: 29.05.2007

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


poza tym zmień [^\]] na np [0-9]{1,3} bo tak jak jest teraz pozwala na wpisanie dowolnego kodu na stronę
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 6.10.2025 - 08:35