PHP function to delete all between certain character(s) in string

php, string

Solution

<?php

$string = 'Some valid and <script>some invalid</script> text!';
$out = delete_all_between('<script>', '</script>', $string);
print($out);

function delete_all_between($beginning, $end, $string) {
  $beginningPos = strpos($string, $beginning);
  $endPos = strpos($string, $end);
  if ($beginningPos === false || $endPos === false) {
    return $string;
  }

  $textToDelete = substr($string, $beginningPos, ($endPos + strlen($end)) - $beginningPos);

  return delete_all_between($beginning, $end, str_replace($textToDelete, '', $string)); // recursion to ensure all occurrences are replaced
}

Problem

I'm interested in `function delete_all_between($char1, $char2, $string)` that will search given $string for $char1 and $char2 and, if such has been found, clear $string from substring between these two characters, including $char1 and $char2 itself. Example: ``` $string = 'Some valid and <script>some invalid</script> text!'; delete_all_between('<script>', '</script>', $string); ``` Now, $string should contain just ``` 'Some valid and text'; //note two spaces between 'and text' ``` Does someone have quick solution?

Original source