首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >preg_replace_callback中有问题的模运算符

preg_replace_callback中有问题的模运算符
EN

Stack Overflow用户
提问于 2013-02-04 11:02:48
回答 1查看 65关注 0票数 0

现在已经很晚了,我不知道下面这个问题的模式(它已经被简化了)。问题在于过程函数。

代码语言:javascript
复制
<?php
function imcrement_image_id( $template ){
  return preg_replace_callback('/%image_id%/', 'process', $template );
}

function process( $match ){
    static $count = 0;
    $count++;
    $output = '';
    if( $count %2 == 0){
        $output =  'image-' . (--$count);
        $count++;
    } else {
    $output =  'image-' . $count;
    }
return $output;
}  
?>

在这个片段中可以看到这些函数的应用。我正在尝试每个循环替换image_id 两次,以便figure id="%image_id"<a href="%image_id"匹配。

代码语言:javascript
复制
<?php for ($i=0; $i <3 ; $i++): ?>
<?php ob_start(); ?>
<figure id="%image_id%">

          <a href="#%image_id%" >
              <img src="http://placehold.it/550x209">
              <figcaption>Caption</figcaption>
          </a>
          <p class="description">Quisque facilisis </p>  
</figure>
<?php $template .= ob_get_clean(); ?>
<?php endfor; ?>
// later...
echo $template;

目前,这段代码确实可以工作,但它生成这样的标记:

代码语言:javascript
复制
 <figure id="image-1">
 <a href="#image-1">
 ...
 <figure id="image-3">
 <a href="#image-3">
 ...
 <figure id="image-3">
 <a href="#image-3">

我希望它是image-1 image-1, image-2 image-2, image-3 image-3等等。指针总是被欣赏的!

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-04 11:14:37

尝试:

代码语言:javascript
复制
function process( $match ){
    static $count = 1;
    $count++;
    return 'image-' . floor($count/2);
}

逻辑:

  • $count为2,3,4,5,6.在return语句中
  • $count/2将返回1,1.5,2,2.5,3.
  • floor($count/2)将返回1,1,2,2,3.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14685355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档