Can anyone provide me with a regular expression that would match the following string?
Code: Select all
{-- dynamic_object [object_name] --}I'm having little success using strpos(), so regex it has to be, I guess!
All help seriously appreciated
Moderator: General Moderators
Code: Select all
{-- dynamic_object [object_name] --}Code: Select all
<?php
$text = "{-- dynamic_object [object_name] --}";
preg_replace("/\{-- dynamic_object \[(.*)\] --\}/isUe", "get_object_name('\\1')", $text);
function get_object_name($name) {
echo $name;
return true;
}
?>Code: Select all
$text = "{-- dynamic_object [heading_text] --}mnmn{-- dynamic_object [sidebar] --}kjkkkjkkjkj{-- dynamic_object [body_content] --}";
preg_replace("/\{-- dynamic_object \[(.*)\] --\}/isUe", "get_object_name('\\1')", $text);
$object_arr = array();
function get_object_name($name) {
$object_arr[] = $name;
return true;
}
print_r(get_object_name($name));
print_r($object_arr); ############ neither of these workCode: Select all
<?php
$object_arr = array();
$text = "{-- dynamic_object [heading_text] --}mnmn{-- dynamic_object [sidebar] --}kjkkkjkkjkj{-- dynamic_object [body_content] --}";
preg_replace("/\{-- dynamic_object \[(.*)\] --\}/isUe", "get_object_name('\\1')", $text);
function get_object_name($name) {
global $object_arr;
$object_arr[] = $name;
return true;
}
print_r($object_arr);
?>Code: Select all
function testRegexToFindObjectStrings() {
$str = 'blah{-- dynamic_object [object_name1] --}
foo {-- dynamic_object [object_name2] --} bar {-- dynamic_object [object_name3] --}';
preg_match_all('~\{-- dynamic_object \[([^\]]+)\] --\}~ims', $str, $match);
$this->assertEqual(
array('object_name1','object_name2','object_name3')
,$match[1]);
}