Как удалить часть строки? - PullRequest
134 голосов
/ 03 февраля 2010

Как обрезать часть строки и сохранить ее в определенной строке в MySQL с помощью PHP?

Пример строки: "REGISTER 11223344 here"

Как мне удалить "11223344" из строки примера?

Ответы [ 10 ]

180 голосов
/ 03 февраля 2010

Если вы нацелились на «11223344», используйте str_replace:

echo str_replace("11223344", "", "REGISTER 11223344 here");
98 голосов
/ 03 февраля 2010

Вы можете использовать str_replace () , который определяется как:

str_replace($search, $replace, $subject)

Чтобы вы могли написать код как:

$subject = 'REGISTER 11223344 here' ;
$search = '11223344' ;
$trimmed = str_replace($search, '', $subject) ;
echo $trimmed ;

Если вам нужно лучшее сопоставление с помощью регулярных выражений, вы можете использовать preg_replace () .

21 голосов
/ 03 февраля 2010

при условии, что 11223344 не является постоянной

$string="REGISTER 11223344 here";
$s = explode(" ",$string);
unset($s[1]);
$s = implode(" ",$s);
print "$s\n";
15 голосов
/ 03 февраля 2010

Выполните следующие действия

$string = 'REGISTER 11223344 here';

$content = preg_replace('/REGISTER(.*)here/','',$string);

Это вернет "РЕГИСТРАЦИЯ здесь"

или

$string = 'REGISTER 11223344 here';

$content = preg_replace('/REGISTER (.*) here/','',$string);

Это вернет "РЕГИСТРАЦИЯ здесь"

6 голосов
/ 03 февраля 2010

Когда вам нужно соответствие на основе правил, вам нужно использовать регулярное выражение

$string = "REGISTER 11223344 here";
preg_match("/(\d+)/", $string, $match);
$number = $match[1];

Это будет соответствовать первому набору чисел, поэтому, если вам нужно быть более конкретным, попробуйте:

$string = "REGISTER 11223344 here";
preg_match("/REGISTER (\d+) here/", $string, $match);
$number = $match[1];
5 голосов
/ 03 февраля 2010

substr () - встроенная функция php, которая возвращает часть строки. Функция substr () будет принимать строку в качестве входных данных, индексную форму, где вы хотите обрезать строку. и необязательный параметр - это длина подстроки. Вы можете увидеть соответствующую документацию и пример кода на http://php.net/manual/en/function.substr.php

ПРИМЕЧАНИЕ: индекс для строки начинается с 0.

3 голосов
/ 08 ноября 2018
str_replace(find, replace, string, count)
  • найти Обязательно. Указывает значение find
  • заменить Требуется. Задает значение заменяет значение в найти
  • строка Обязательно. Определяет строку для поиска
  • count Необязательно. Переменная, которая считает количество замен
1 голос
/ 03 марта 2018

Динамически, если вы хотите удалить (а) часть (и) из (а) фиксированного индекса (ов) строки, используйте эту функцию:

/*
 * Remove index/indexes from a string, delimited by a space (or something else).
 * First, divides the string by delimiter and holds divided parts as an array.
 * If $index is an array, it removes all indexes of the divided string;
 * otherwise (i.e. has an int value), it removes just that index of the string.
 * At last, it joins all string parts together and return it as a string.
 * Note: If you want to use this function in PHP5, remove scalar type hints
 * (i.e. keywords before function arguments).
 * Note: For PHP versions lower than 7.0, remove scalar type hints (i.e. the
 * types before each argument) and the return type.
 */
function remove_from_str(string $str, $index, string $delimiter = " "): string
{
    // String parts
    $strParts = explode($delimiter, $str);

    // Remove indexes from string parts
    if (is_array($index))
        foreach ($index as $i)
            $strParts[(int)$i] = null;
    else
        $strParts[(int)$index] = null;

    // Remove null values, to prevent duplicating delimiter
    $strParts = array_filter($strParts);

    // Join all parts together and return it
    return implode($delimiter, $strParts);
}

Для вашей цели:

remove_from_str("REGISTER 11223344 here", 1);
// Output: REGISTER here

Одним из способов его использования является выполнение командоподобных строк, в которых вы знаете их структуру.

0 голосов
/ 05 января 2018

Вы тоже можете сделать это, если вам нравятся другие способы ...

function str_substract($remove, $subject){
    $strpos = strpos($subject, $remove);
    return substr($subject, 0, $strpos) . substr($subject, $strpos + strlen($remove));
}

$str = "Hello, world. This is amazing";
print str_substract('rld', $str);

/* Outputs: */
"Hello, wo. This is amazing"

Примечание. Это не будет работать со всеми символами, например со строками Unicode

0 голосов
/ 03 мая 2013

, если вы хотите удалить часть строки из заданной строки это может помочь вам

chop($string,'part_of_string');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...