Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie znaków od XX do YY
.radex
post 17.06.2007, 16:14:03
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


Czy istnieje wbudowana funkcja która kasuje wszystko od jakiegoś znaku (sekwencji znaków) do jakiegoś znaku (sekwencji znaków), tzn.

..............................XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YY.................
......

byłoby zamienione na

.....................................................

albo mogłobybyć z pozostawieniem tych znaków tj.

..............................XXYY.......................

bo i tak można je usunąć osobno

Więc czy istnieje taka funkcja czy muszę takową pisać samemu ( :roll2: )


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Cezar708
post 17.06.2007, 16:52:53
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


na przykład preg_replace()

przykład:
  1. <?php
  2. $string="..............................XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YY............
    ..........."
    ;
  3. echo preg_replace("/[X-Y]/","",$string);
  4. ?>


EDIT: ups... chyba nie o to chodziło...

Jeśli chcesz aby kasował Ci od jakiegoś znaku do innego to musisz niestety własną funkcję napisać.
Funkcje z tej strony dokumentacji powinny być Ci pomocne.

Ten post edytował Cezar708 17.06.2007, 16:57:00
Go to the top of the page
+Quote Post
Darti
post 17.06.2007, 16:57:01
Post #3





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


Może takie coś (wywalić wszystko):
  1. <?php
  2. $string="..............................XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YY............
    ..........."
    ;
  3. echo preg_replace('/(XX)+(,)+(YY)/','',$string);
  4. ?>

albo wywalić same przecinki:
  1. <?php
  2. $string="..............................XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YY............
    ..........."
    ;
  3. echo preg_replace('/(XX)+(,)+(YY)/','$1$3',$string);
  4. ?>


Ten post edytował Darti 17.06.2007, 17:03:30


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
.radex
post 17.06.2007, 17:21:17
Post #4





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


tzn. te przecinki to był przykład ale zrobiłem to w taki sposób:

$output = preg_replace("#(XX)+(.*?)+(YY)#si","",$input);

Dzięki wielkie!


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
Cezar708
post 20.06.2007, 08:43:58
Post #5





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Nie rozpoczynając nowego tematu, to mam pytanie, jak zrobić sytuację odwrotną, czyli używając przykładu powyższego:
  1. <?php
  2. $string='..............................XX,,,,,,,,,przecinki :) ,,,,,,,,,,,,,,YY.......................';
  3. $output = {brakująca_funkcja}('/(XX)+(,)+(YY)/','',$string);
  4. echo $output
  5. ?>


dało w wyniku
Kod
,,,,,,,,,przecinki :) ,,,,,,,,,,,,,,


czyli wszystko to co jest pomiedzy znakami XX i YY
Go to the top of the page
+Quote Post
zimi
post 20.06.2007, 09:59:07
Post #6





Grupa: Zarejestrowani
Postów: 233
Pomógł: 9
Dołączył: 3.06.2007

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


manual!
  1. <?php
  2. $string="..............................XX,,,,,,,,,,,,,,,,,,,,,,,,,,,,,YY............
    ..........."
    ;
  3. preg_match('/(XX)+(,)+(YY)/',$string,$dopasowany);
  4. echo $dopasowany[2];
  5. ?>
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.08.2025 - 03:40