Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak pozbyc sie niechcianych znakow ' " ' ?
kaźmirz
post
Post #1





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

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


Mam duzy (jak dla mnie) problem z pozbyciem sie znakow cudzyslowu.
Znam funkcje str_replace, preg_replace itp., ale kompletnie nie mam pomyslu jak z nich w tym przypadku skorzystac.
Co chce osiagnac?

Mam tekst:
Kod
$text = '[autor="XXX"]jakis "tekst" w tagu[/autor]';

gdzie XXX, to nieznana tresc i nazwa tagu tez jest nieznana :/

Teraz chce pozbyc sie tych cudzyslowow ("), ale tylko w tagu [autor=], zeby nie usunelo mi mozliwych cudzyslowow z tekstu wewnatrz tagu.
Tak ma to wygladac:

$text = '[autor=XXX]jakis "tekst" w tagu[/autor]';

Da sie to w ogole zrobic?
Bo przyznam ze podstawu wyrazen regularnych niby znam, ale nie mam pojecia jak to zrobic :/
Prosze o pomoc smile.gif

Teraz cos mi do glowy wpadlo, jest tak pokrecone, ale wydaje mi sie ze moze zadzialac.
Czy to ma sens?:

  1. $text = '[autor="Heniek"]Jakis "tekst" w tagu[/autor]';
  2. $text = preg_replace("#\[(*.?)\"(*.?)\"\](*.?)\[\/(*.?)\]#si", "[\\1\\2]\\3[/\\4]", $text);

Jednak nie dziala - sypie bledami sad.gif

Ten post edytował kaźmirz 15.03.2011, 16:59:25
Go to the top of the page
+Quote Post
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Najprosciej to:
  1. $text = '[autor="XXX"]jakis "tekst" w tagu[/autor]';
  2. $text=str_replace('="','=',$text);
  3. $text=str_replace('"]',']',$text);


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
kaźmirz
post
Post #3





Grupa: Zarejestrowani
Postów: 103
Pomógł: 2
Dołączył: 6.07.2010

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


Cytat(sadistic_son @ 15.03.2011, 16:49:15 ) *
Najprosciej to:
  1. $text = '[autor="XXX"]jakis "tekst" w tagu[/autor]';
  2. $text=str_replace('="','=',$text);
  3. $text=str_replace('"]',']',$text);

Gorzej jesli w tekscie wewnatrz tagu trafi sie taka kombinacja ( =" lub "] ).
Ale i tak pomogles, bo moze uda mi sie to lekko przerobic i wyklucze mozliwosc podmiany wewnatrz tagow.
Go to the top of the page
+Quote Post
binbash
post
Post #4





Grupa: Zarejestrowani
Postów: 22
Pomógł: 8
Dołączył: 28.12.2010
Skąd: Szczecin

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


Witam,

A może tak:
  1. $text = '[autor="Heniek"]Jakis "tekst" w tagu[/autor]';
  2. $text = preg_replace('/(\[[a-zA-Z]+=)(")([a-zA-Z]+)(")(])/', '$1$3$5', $text);
  3.  
  4. var_dump($text);

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 Aktualny czas: 19.08.2025 - 05:28