Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] wyrażenia regularne - zmiana tekstu na zmenne itp.
ITI
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 4.06.2002
Skąd: Z US - Układ Słoneczny :)

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


Hello (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Szukam wszedzie, ale znajduje tylko fragmenty informacji, z ktorych niestety nie udaje mi sie zlozyc calosci ;(

Potrzebuje zamienic tekst w formacie [obrazekX nazwa autor] na odpowiednia wartosc zmiennej $obrazekX gdzie X jest numerkiem od 1 do 9 (lub w ogole jakims numerem), a tym samym numerem obrazka, nastepnie jest nazwa, ktora jest nazwa obrazka, no i autor (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Znalazlem tutaj na forum fajny skrypt:

  1. <?php
  2. $text1 = 'text 1 replace';
  3. $text2 = 'text 2 replace';
  4. $s = '[text1] 
  5.  
  6. [text2] ';
  7.  
  8. echo preg_replace( '#[(textd+)]#sie', 'empty($1)?"":$1', $s );
  9. ?>

ale niestety nie rozwiazuje on moich problemow. W ogóle to nie bardzo radze sobie z tymi wyrazeniami ;(

Jeszcze raz dla wyjasnienia
mam w tekscie:
[obrazek1 nazwa autor]
a chce to miec:
obrazek1 - ma wyswietlac wartosc zmiennej $obrazek1, ktora wczesniej utworzylem
nazwa ma zawierac nazwe obrazka
a autor = autora

Potem to wszystko ma sie prezentowac np. w formie <img src="$obrazek1"> - 'nazwa'. Autorem obrazka jest: 'autor'.

Z gory dzieki za wszelkie propozycje i podpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ps. czy ktos moze przy okazji wyjaznic co to sa te ?"": w tym kodzie, ktory wydnieje na gorze (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
be2k
post
Post #2





Grupa: Zarejestrowani
Postów: 40
Pomógł: 2
Dołączył: 14.07.2006

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


mozna i bez regularnych ale ile byloby pieprzenia to ja dziekuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jesli dobrze zrozumialem to masz w tekscie takie ciagi znakow:
[obrazek1 Jezioro Janek]
i z tego masz uzyskac
<img src="$obrazek1"> - Jezioro. Autorem obrazka jest Janek
gdzie $obrazek1 to wartosc tej zmiennej, zgadza sie?

jesli tak to tu masz rozwiazanie:
  1. <?php
  2. $str = "[obrazek1 Domek_nad_jeziorem Janek]";
  3.  
  4. $pattern = array(
  5. '/[(obrazek[0-9]+) ([a-z0-9_-]+) ([a-z0-9_-]+)]/i',
  6. '/(obrazek[0-9]+)/ie'
  7. );
  8.  
  9. $replacement = array(
  10. '<img src="1"> - 2. Autorem obrazka jest: 3',
  11. 'empty($1)?"no_image.gif":$1'
  12. );
  13.  
  14. $str = preg_replace($pattern, $replacement, $str);
  15. ?>


tylko ze nazwa i autor musza byc jednym ciagiem znakow (zamiast spacji - lub _) co widac powyzej. nie wiem czy brales to pod uwage. mozna to ominac stosujac zapis:
$str = "[obrazek1 'Domek nad jeziorem' 'Janek']";
i wtedy trzeba nieznacznie zmodyfikowac wyrazenie regularne
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 02:46