从变量中删除空格以创建有效的html元素ID?

时间:2013-06-26 02:04:11

标签: php regex fancybox-2

我将fancybox添加到Wordpress上的产品库中。我使用产品标题作为隐藏div的id名称和缩略图链接的href。产品标题中有空格,打破了花哨盒。

我在网上找到的解决方案仅涉及html元素之间的空格,而我的javascript / regex知识不足以从那里获得解决方案。

以下是我用来生成产品缩略图和图片的代码:

<div class="entry-post-thumbnail">
            <a class="size-<?php echo $image_size;?> fancybox" href="#image-<?php the_title(); ?>"><?php the_post_thumbnail($image_size); ?></a>
            <div id="image-<?php the_title(); ?>" style="display: none;">
                <?php the_post_thumbnail($post->ID,'full'); ?>
            </div>
</div><!-- .entry-post-thumbnail -->

这是输出的代码:

<a class="size-product fancybox" href="#image-Product three">
    <img src="[###]/wp-content/uploads/2013/06/product-thumbnail.png" class="attachment-product wp-post-image" alt="Product thumbnail" height="222" width="166"></a>
<div id="image-Product three" style="display: none;">
    <img src="[###]/wp-content/uploads/2013/06/product-thumbnail.png" class="attachment- wp-post-image" alt="Product thumbnail" full="" height="222" width="166">               
    </div>

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

使用preg_replace

<div id="image-<?php preg_replace('/(\s/', '', the_title()); ?>" style="display: none;">

更好的正则表达式是[^A-Za-z0-9\-_:.]。这会根据What are valid values for the id attribute in HTML?匹配html ID的所有无效字符。