Jump to content

Extract text between curly braces - why doesn't my code work?


extrovertive

Recommended Posts

Might be easier way, but I just did it like this.

 

<?php
$text = "wow {one|two|three}fsasfa happy ness";
$matches = array();
preg_match_all('#\{.*?\}|[^ ]+#', $text, $matches);

foreach ($matches[0] as $word) {
    $v = array();
    if (preg_match('#^\{(.*)\}$#', $word, $v)) {
        echo '<strong>' . htmlspecialchars($v[1]) . '</strong>';
    } else {
        echo htmlspecialchars($word);
    }
    echo '<br />';
  
}

?>

 

Results be

wow

one|two|three

fsasfa

happy

ness

 

Now can do anything you want with the matching values

Hope I am not imposing, but this would work too.

 

<?PHP

  $text   = "wow {one|two|three}fsasfa happy ness";
  $newTxt = explode('{',$text);
  $result = array();

  if(count($newTxt) > 1) {
    foreach($newTxt AS $value) {
      if(strstr($value,'}')) {
        $value    = explode('}',$value);
        $result[] = $value[0];
      }
    }

  print_r($result);

  } else {
    echo 'No Results';
  }
?>

 

This assumes that all text between { AND } needs to be retrieved.

 

Try it out and tell me how it goes :)

 

Regards, PaulRyan.

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.