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 Quote 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. Quote 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 Quote 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 ^ Quote 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> Quote 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 / Quote 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); ?> Quote Link to comment https://forums.phpfreaks.com/topic/87039-solved-white-spaces/#findComment-445222 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.