2012-06-29 1 views
0

Я использую завиток, чтобы получить содержимое веб-сайта в строку. После этого я хочу выделить все пробелы. Для этого я использую $content = preg_replace('/\s+/', '', $content);. Но это не работает должным образом. Что я делаю не так?Strip all whitespace

Я использую этот код, чтобы получить содержание:

$curl_handle = curl_init(); 
curl_setopt($curl_handle, CURLOPT_URL, 'http://www.italiakalmar.se/ui/Article/show.aspx?id=185&m=165'); 
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); 
$content = curl_exec($curl_handle); 
curl_close($curl_handle); 

$pos = stripos($content, "<body"); 
$content = substr($content, $pos); 

$content = strip_tags($content); 

$content = html_entity_decode($content, ENT_COMPAT, 'UTF-8'); 

$content = preg_replace('/\s+/', '', $content); 

$content = mb_strtolower($content, 'utf-8'); 

echo $content = str_replace("–", "-", $content); 

Я тогда получить эту строку: //fabrikenrestaurangenpizzerianintromenykvalitetallergihittatillosspizzeriaitaliapizzeriaitaliaöppnadedörrarnaförstagÃ¥ngenredan1977,ochdrivssedandessisammamiljöochsammakaraktäristiskastil.viharalltidutsöktapizzoraverkäntgodsmakochkvalitet .komintillpizzeriaitaliaochlà ¥ tossserveradigenutsöktpizza.elleromdetpassarbättre-là ¥ tosslevereradenhemtilldig! nukanmanävenbetalamedkortvidutkörning! öppettider: mà ¥ n-torskl: 15-21fredag ​​ kl: 15-22lördag  kl: 12-22söndag kl: 12-21ingà ¥ rikalmarkrogar.se

Как видите, пробелы все еще существуют.

+0

должен работать, потому что он работает здесь. http://stackoverflow.com/questions/2109325/how-to-strip-all-spaces-out-of-a-string-in-php –

+1

более конкретно ... –

+0

как насчет/(\ s) */? – Jamie

ответ

1
$content = str_replace(' ', '', $content); 

No regex approach.

+0

Он не будет работать для вкладок и пробелов новой строки. – flowfree

+0

Я знаю. Но «/ \ s + /» или любое другое регулярное выражение также не работают для U + 2001, U + 2028, U + 2004, U + 2005, U + 2006, U + 2007, U + 200A. – miqbal

+1

Почему бы вам не создать массив со всем, что вы хотите заменить? Просто сделайте str_replace (array (), '', $ content) – AntonioCS

-1
$content = preg_replace('/\s+/', '', $content); 

поиск только для одного или первого матча

Вы можете соответствовать все пробельные в данной строке $ содержимого с помощью этого

$content = preg_replace('/\s+/g', '', $content); 

вам нужно поставить «г» для глобального поиска в регулярное выражение

Вы можете протестировать или создать регулярные выражения с помощью этого онлайн-инструмента.

http://www.gskinner.com/RegExr/

+0

Я просто получаю bool (false) при использовании $ content = preg_replace ('/ \ s +/g', '', $ content); –

+0

модификатор g не реализован в phps preg: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php, preg_replace имеет два параметра для контроля количества замен – Simon