2014-11-30 2 views
-3

Название не в значительной степени за себя ...PHP удалить все пробелы ПОКА условие

Я хочу, чтобы удалить все пробелы, если он не находится внутри " " или ''

, например:

<?php 

$myText = <<<EOF 

    echo 'Those spaces should not be removed'; echo 'but the spaces between the semicolon TO the next echo should be removed'; 

EOF; 

$string = str_replace(' ', '', $myText); //this remove everything :(

?> 

Я Ожидается, что строка $ будет равна:

echo'Those spaces should not be removed';echo'but the spaces between the semicolon TO the next echo should be removed'; 

Благодаря !

+3

Не украсит каждый вопрос "Любая идея?". Идеи - это то, что ** вы должны представить на основе предыдущих исследований. - Regex, или 'php -w'. – mario

+0

@Michael Laffargue Я просто хочу сжать любой скрипт php, чтобы в коде не было неиспользуемых пробелов ... – Steven

+2

Используйте ['php_strip_whitespace()'] (http://php.net/manual/en/function.php-strip- whitespace.php). –

ответ

0

Попробуйте это:

// Break up $string into an array of separated $string_parts 

while (preg_match('/\'\;[^\']+\'/', $string)) { 
preg_match('/\'\;[^\']+\'/', $string, $pattern); 
$string_explode = explode($pattern[0], $string); 
$string_parts[] = $string_explode[0]; 
$string_parts[] = $pattern[0]; 
$string = $string_explode[1]; 
} 


// Add last remaining part of original $string to $string_parts array 

$string_parts[] = $string_explode[1]; 


// Collapse the spaces in every second element in $string_parts array 

$count_string_parts = count($string_parts); 
for ($i = 1; $i < $count_string_parts; $i = $i + 2) { 
$string_parts[$i] = str_replace(' ', '', $string_parts[$i]); 
} 


// Put $string back together again from $string_parts array 

$string = implode($string_parts); 
Смежные вопросы