Text betwen slashes into radio buttons


I need to analyze a string and get the text between, before, and after the forward slashes…

The string will always look something like this, but will vary:

$str = “I will go to the store with <# one/two/three #> people.”

Then I need to create a form with radio buttons for each choice. In this case (one, two, or three).

The text between the <# … #> could be different every time, and with uknown amount of forward slashes.

Here is what I have so far but it doesn’t work.

Code to find if there are slashes:

preg_match_all( '/([/]+)/',$str,$matches);

Code to create html form …

$i = 0;
$html  = '<form>';

foreach ($matches[0] as $match){

     if ($pos = strpos( $str,$match ) ) === false )

     $html .= '<input type="radio" name="place-' . $i . '" value=". $match . '" />&nbsp;&nbsp;';


$html .= '</form>';

Its not working as needed. I’m not sure how to create radio button choices for the words (one, two, three).


I would suggest using explode, rather than preg_match. It will be a bit faster.

You say you are not getting what you expect… what are you getting?

Do you mean something like this?

$str = "I will go to the store with <# one/two/three #> people.";
preg_match('~<#(.*?)#>~', $str, $matches);
$words = explode("/", $matches[1]);
echo '<form action="" name="frm">';
foreach($words as $word){
    echo '<input type="radio" name="mychoice" value="' . trim($word) . '" />' . trim($word) . '<br />';
echo '</form>';