Due to horrible and inconsistent formatting by a certain website we are receiving data from, I need to parse the following string and print new strings after replacing/removing one or two substrings.
$s = array(
'James Cussen\'s Destructor Bot',
'Andre Riverra\'s Quick-Runner - San francisco',
'Kim Smith\'s - NightBot'
);
Desired result:
James Cussen: Destructor Bot
Andre Riverra: Quick-Runner
Kim Smith: Nightbot
How can I parse a line with two '-' into the corresponding Owner: name
format?
My current code:
$bot ='';
$creator = '';
foreach($s as $parse)
{
//if string contains '
if(strpos($parse,'\'') !== false)
{
if(substr_count ($parse, '-') > 1)
{
$arr = explode('\'', $parse);
$line = trim(substr($arr[1], 1));
}
if(strpos($parse,'–') !== false)
{
$temp = explode('–',$parse);
}
else
{
$temp = explode('-', $parse);
}
$arr = explode('\'', $temp[0]);
$creator = $arr[0];
$bot = trim(substr($arr[1], 1));
}
echo $creator.':'.$bot;
echo '<br>';
}
This will definitely fail in the future, because of the inconsistent format the data is being delivered in, but hey, at least it works now.
foreach ($s as $entry):
list($creator, $bot) = explode('\'s', $entry);
if (substr($bot, 0, 3) !== ' - '):
$bot = substr($bot, 0, strpos($bot, ' - '));
else:
$bot = substr($bot, 3);
endif;
echo $creator . ': ' . $bot . '<br>';
endforeach;