PHP str_replace со смещением
У меня есть следующий вывод:
Item
Length : 130
Depth : 25
Total Area (sq cm): 3250
Wood Finish: Beech
Etc: etc
Я хочу удалить общую площадь (кв. См): и 4 цифры после нее из строки, в настоящее время я пытаюсь использовать str_replace следующим образом:
$tidy_str = str_replace( $totalarea, "", $tidy_str);
Правильно ли использовать эту функцию, и если да, то как я могу включить 4 случайные цифры после этого текста? Также обратите внимание, что это не установленный вывод, поэтому строка изменит позицию в этом.
4 ответа
Решение
Это сделает это.
$exp = '/\(sq cm\): \d+/';
echo preg_replace($exp, '', $array);
Вы можете практиковать php regex на http://www.phpliveregex.com/
<?php
$str = '
Item
Length : 130
Depth : 25
Total Area (sq cm): 3250
Wood Finish: Beech
Etc: etc
';
echo preg_replace("/Total Area \(sq cm\): [0-9]*\\n/", "", $str);
Item Length : 130 Depth : 25 Wood Finish: Beech Etc: etc
Ты ищешь substr_replace
:
$strToSearch = "Total Area (sq cm):";
$totalAreaIndex = strpos($tidy_str, $strToSearch);
echo substr_replace($tidy_str, '', $totalAreaIndex, strlen($strToSearch) + 5); // 5 = space plus 4 numbers.
Если вы тоже хотите удалить символ новой строки, проверьте, \n или \r\n. \n добавить один, \r\n добавить два к смещению. То есть. strlen($strToSearch) + 7
Попробуйте с этим:
preg_replace('/(Total Area \(sq cm\): )([0-9\.,]*)/' , '', $tidy_str);