2012-02-21 4 views
0

СтрокаЗаменить часть строки с определенной точки

abc/def/*

или

abc/def/*/xyz

Как я могу использовать preg_replace_callback заменить все после /* с определенной строки?

Как

abc/def/replacement

+0

я не знаю, но я думаю, вы не хотите Мануалов Chech для НАСТОЯЩЕГО «/ *», а затем вырезать строку в позицию «/ * ", а затем добавить замену? – kajacx

+0

Итак, в обоих примерах результат будет таким же (значение у вас под «Like»)? – salathe

ответ

1
<?php 
$string = "abc/dc/*bla/foo"; 

$string = preg_replace_callback(
    '~/\*.*~', 
    create_function(
     '$match', 
     'return "/replacement";' 
    ), 
    $string 
); 

var_dump($string); 
?> 

выходного

string 'abc/dc/replacement' (length=19) 
1

Что-то, как это должно работать:

$text = "abc/def/*/xyz"; 
function rep($matches) 
{ 
    return "/replacement"; 
} 
echo preg_replace_callback("|/\*.*|", "rep", $text); 

ли вам действительно нужно использовать preg_replace_ca llback хотя? Вот эквивалентный вариант с preg_replace:

$text = "abc/def/*/xyz"; 
echo preg_replace("|/\*.*|", "/replacement", $text);