Заменить часть строки с определенной точки - PullRequest
0 голосов
/ 21 февраля 2012

Строка

abc/def/*

или

abc/def/*/xyz

Как использовать preg_replace_callback, чтобы заменить все после /* наопределенная строка?

Как

abc/def/replacement

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Примерно так должно работать:

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

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

$text = "abc/def/*/xyz";
echo preg_replace("|/\*.*|", "/replacement", $text);
1 голос
/ 22 февраля 2012
<?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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...