Поиск и замена обратного слэша в PHP

Discussion in 'PHP' started by megageorge, 26 May 2014.

  1. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    Чуть мозг не сломал

    PHP:
    $sss1 "sdfsdf\asda 0970\10000000";
    $sss2 preg_replace('/\\\\+/','/',$sss1);
    echo 
    $sss2;
    выдает

    sdfsdf/asda 0970@00000

    то есть нормально ищет по тексту, но если после слэша идут три цифры, то он их компонует в какое то подобие ALT кода

    нужно чтобы продуктивно заменяло и там где цифры после слэша

    кто сталкивался, подсобите плиз
    спасибо
     
  2. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    также заметил что не все цифры после слэша преобразуются (например \900 нормально заменяет на /900)

    а \f вообще превращается в НИЧТО
     
  3. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    str_replace?
     
    _________________________
  4. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    PHP:
    $sss3 str_replace("\\\\","/",$sss1);
    или
    $sss3 
    str_replace("\\","/",$sss1);

    выдало все ту же ерунду
     
  5. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Ну, правильно. Используйте одинарные кавычки, тем самым говорим интерпретатору что это обычная строка и обработка не нужна.
    PHP:
    canis@box:/tmpphp 1.php 
    sdfsdf
    /asda 0970/20000000
    Code:
    cat 1.php 
    <?php 
    $sss1 = 'sdfsdf\asda 0970\20000000';
    $sss2 = str_replace('\\','/',$sss1);
    echo $sss2;  
    
     
    _________________________
    1 person likes this.
  6. megageorge

    megageorge New Member

    Joined:
    24 Dec 2010
    Messages:
    54
    Likes Received:
    1
    Reputations:
    0
    спасибо огромное!
    даже и не думал что для регулярок сие (одиночная или двойная кавычка) так важно
     
  7. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Дело даже не в регулярках, а в самом php. Подробнее тут http://x.co/4i9pv
     
    _________________________