Reputation: 1431
I have variable $menu
type array like below:
$menu = array('<li class="page_item page-item-155">',
'<li class="page_item page-item-49">',
'<li class="page_item page-item-72">',
'<li class="page_item page-item-18">',
'<li class="page_item page-item-50">');
I want to replace the first original string
<li class="page_item page-item-155">'
to
<li class="current">
In the end of the string it can be any number, the numbers are not constant.
I think I need to use a regular expression but I don't know how to implement it.
$menu = str_replace($original_strs_array, $replacement_strs_array, $menu);
How can I do that? Thanks.
Upvotes: 0
Views: 2632
Reputation: 15158
try this :
preg_replace('/page_item page-item-\d+/','current',$menu);
Or this for a generic class remover/replacer:
preg_replace("/class\s*=\s*('|\")[^'\"]*('|\")/",'class="current"',$menu);
Upvotes: 1
Reputation: 43552
$menuA = preg_replace('~class=".+"~', 'class="current"', $menu);
print_r($menuA);
$menuB = preg_replace('~class="(.+?)"~', 'class="$1 current"', $menu);
print_r($menuB);
$menuC = preg_replace('~class=".*?page-item-'.$selectedMenuId.'"~', 'class="current"', $menu);
print_r($menuC);
$menuD = preg_replace('~class="(.*?)page-item-('.$selectedMenuId.')"~', 'class="$1page-item-$2 current"', $menu);
print_r($menuD);
$menuA = Array
(
[0] => <li class="current">
[1] => <li class="current">
[2] => <li class="current">
[3] => <li class="current">
[4] => <li class="current">
)
$menuB = Array
(
[0] => <li class="page_item page-item-155 current">
[1] => <li class="page_item page-item-49 current">
[2] => <li class="page_item page-item-72 current">
[3] => <li class="page_item page-item-18 current">
[4] => <li class="page_item page-item-50 current">
)
$menuC = Array
(
[0] => <li class="page_item page-item-155">
[1] => <li class="page_item page-item-49">
[2] => <li class="current">
[3] => <li class="page_item page-item-18">
[4] => <li class="page_item page-item-50">
)
$menuD = Array
(
[0] => <li class="page_item page-item-155">
[1] => <li class="page_item page-item-49">
[2] => <li class="page_item page-item-72 current">
[3] => <li class="page_item page-item-18">
[4] => <li class="page_item page-item-50">
)
Upvotes: 3