redfox180 Posted January 21, 2008 Share Posted January 21, 2008 Hello, I am trying to standardize all different white spaces inside a text to a defined value, for example 1. How can I clean up this text: Josie has 4 different coats.< One is blue< ... TO THIS: Josie/has/4/different/coats/One/is/blue Ive tried str_replace but doesn't work since the spaces are not defined. Does anyone know how to do it? Thanks James Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/ Share on other sites More sharing options...
PHP Monkeh Posted January 21, 2008 Share Posted January 21, 2008 Here's my (probably slightly rubbish) solution. <?php $inputStr = "Josie has 4 different coats.< One is blue<"; $explodeInput = explode(" ", $inputStr); $newStr=""; for($i=0; $i<count($explodeInput); $i++) { $arrayInput = $explodeInput[$i]; if($arrayInput != null || $arrayInput != "") { $newStr .= trim($arrayInput); $newStr .= "/"; } } $newStr = substr($newStr, 0, strlen($newStr)-1); $newStr = str_replace("<", "", $newStr); $newStr = str_replace(".", "", $newStr); echo $newStr; ?> I just pasted in your input string and it outputs what you want ^.^ modify as you wish. Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445164 Share on other sites More sharing options...
redfox180 Posted January 21, 2008 Author Share Posted January 21, 2008 Thanks. The only thing, it leaves a slash at the end, do you know how to leave it blank? Cheers James Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445197 Share on other sites More sharing options...
PHP Monkeh Posted January 21, 2008 Share Posted January 21, 2008 <?php $newStr = substr($newStr, 0, strlen($newStr)-1); ?> That line which I added after the loop removes the last slash ^ Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445207 Share on other sites More sharing options...
effigy Posted January 21, 2008 Share Posted January 21, 2008 <pre> <?php $data = <<<DATA Josie has 4 different coats.< One is blue< DATA; echo trim(preg_replace('/[\s.<]+/', '/', $data), '/'); ?> </pre> Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445212 Share on other sites More sharing options...
resago Posted January 21, 2008 Share Posted January 21, 2008 $string=preg_replace(' +','\/',$string); this means replace any space on one or more repititions with a / Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445216 Share on other sites More sharing options...
redfox180 Posted January 21, 2008 Author Share Posted January 21, 2008 Thanks Everyone! Problem solved. The soulution posted by Monkeh works perfectly, I just had to change the last value from -1 to -2 <?php $newStr = substr($newStr, 0, strlen($newStr)-1); ?> Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445222 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.