douxia6554 2017-02-17 08:04
浏览 26
已采纳

用PHP中的渐进数替换字符串(str_replace)

I have a php function that called in this way

breadcrumbs_func();

stamp this breadcrumbs:

<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>

When I call this function I want to replace the two content="nprog" with a progressive number (1-2-3...) in this way:

content="1", content="2"

I tried with str_replace(); but it doesn't seem to work:

$breadcrumbs =   breadcrumbs_func();
$new_breadcrumbs =   str_replace("nprog", "1", $breadcrumbs);
echo $new_breadcrumbs;

this return the breadcrumbs with no changes.

Any help?

  • 写回答

2条回答 默认 最新

  • dongshi6844 2017-02-17 08:36
    关注

    Here is a way :

    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;
    

    https://repl.it/FnSp/1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失