用 PHP (str_replace) 中的递增数字替换字符串
Replace a string with progressive number in PHP (str_replace)
我有一个 php 函数以这种方式调用
breadcrumbs_func();
标记此面包屑:
<div class="breadcrumbs" itemscopeitemtype="http://schema.org/BreadcrumbList">
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="#" itemprop="item"><span itemprop="name">Home</span></a>
<meta itemprop="position" content="nprog">
</span>
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="#" itemprop="item" ><span itemprop="name">Category</span></a>
<meta itemprop="position" content="nprog">
</span>
</div>
当我调用这个函数时,我想用这样的方式用渐进数字(1-2-3 ...)替换两个 content="nprog"
:
content="1"
, content="2"
我试过 str_replace();
但它似乎不起作用:
$breadcrumbs = breadcrumbs_func();
$new_breadcrumbs = str_replace("nprog", "1", $breadcrumbs);
echo $new_breadcrumbs;
此 return 没有任何变化的面包屑。
有什么帮助吗?
这里有一个方法:
function str_replace_first($search, $replace, $subject) {
$pos = strpos($subject, $search);
if ($pos !== false) {
return substr_replace($subject, $replace, $pos, strlen($search));
}
return $subject;
}
$new_breadcrumbs = str_replace_first("nprog", "1", $breadcrumbs);
for($i=2; $i<=substr_count($breadcrumbs,"nprog");$i++){
echo $i;
$new_breadcrumbs =str_replace_first("nprog", $i, $new_breadcrumbs);
}
echo $new_breadcrumbs;
好的,我找到了将回显结果存储在 $var:
中的解决方案
<?php ob_start();
breadcrumbs();
$breadcrumbs = ob_get_contents();
ob_end_clean();
希望这不会影响稳定性或性能!
我有一个 php 函数以这种方式调用
breadcrumbs_func();
标记此面包屑:
<div class="breadcrumbs" itemscopeitemtype="http://schema.org/BreadcrumbList">
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="#" itemprop="item"><span itemprop="name">Home</span></a>
<meta itemprop="position" content="nprog">
</span>
<span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
<a href="#" itemprop="item" ><span itemprop="name">Category</span></a>
<meta itemprop="position" content="nprog">
</span>
</div>
当我调用这个函数时,我想用这样的方式用渐进数字(1-2-3 ...)替换两个 content="nprog"
:
content="1"
, content="2"
我试过 str_replace();
但它似乎不起作用:
$breadcrumbs = breadcrumbs_func();
$new_breadcrumbs = str_replace("nprog", "1", $breadcrumbs);
echo $new_breadcrumbs;
此 return 没有任何变化的面包屑。
有什么帮助吗?
这里有一个方法:
function str_replace_first($search, $replace, $subject) {
$pos = strpos($subject, $search);
if ($pos !== false) {
return substr_replace($subject, $replace, $pos, strlen($search));
}
return $subject;
}
$new_breadcrumbs = str_replace_first("nprog", "1", $breadcrumbs);
for($i=2; $i<=substr_count($breadcrumbs,"nprog");$i++){
echo $i;
$new_breadcrumbs =str_replace_first("nprog", $i, $new_breadcrumbs);
}
echo $new_breadcrumbs;
好的,我找到了将回显结果存储在 $var:
中的解决方案 <?php ob_start();
breadcrumbs();
$breadcrumbs = ob_get_contents();
ob_end_clean();
希望这不会影响稳定性或性能!