如何在php上过滤$value

如何在php上过滤$value,php,wordpress,Php,Wordpress,我要筛选值 例如: 112将成为01:12 从脚本 $duration = get_post_meta( $post->ID, 'TMDB_Runtime', true ); if ( ! empty( $duration ) ) { echo '<div class="gmr-duration-item" property="duration">' . $duration . __( ' <a class="fa fa-clock-o" aria-hidden="tr

我要筛选值

例如:
112
将成为
01:12

从脚本

$duration = get_post_meta( $post->ID, 'TMDB_Runtime', true ); 
if ( ! empty( $duration ) ) {
echo '<div class="gmr-duration-item" property="duration">' . $duration . __( ' <a class="fa fa-clock-o" aria-hidden="true"></a>','movies' ) . '</div>';
$duration=get\u post\u meta($post->ID,'TMDB\u Runtime',true);
如果(!空($duration)){
回音“.$duration.”(“电影”);
我尝试过使用substr和str_replace并将其放入function.php

<?php
$text = '$duration';
$text = substr($text, 0, 3);
echo $text =str_replace("1","01:", $text);
?>


但始终显示解析错误。

我在这段代码中注意到两个问题:

<?php
$text = '$duration';
$text = substr($text, 0, 3);
echo $text =str_replace("1","01:", $text);
?>
第二:
$text='$duration';
没有将
$text
设置为
112
。它将其设置为文本字符串
$duration
。PHP中的单引号不计算变量,这就是双引号的作用。因此,请尝试以下操作:

$text = "$duration";

您可以这样做,静态:

<?php
$duration = "112";
$exploded = str_split($duration);
$exploded[0] = "0".$exploded[0].":";

$final = implode($exploded);
echo $final;
?>


是的,我知道,
上的$duration
应该是
112
echo$text=str\u replace(“1”,“01:”,$text)
应该是
01:01:2
这只是一个例子,因为我已经不知道如何使用它了。这是正确的方法,它是有效的,但是,
$duration
它并不总是
112
值,我的意思是,从$duration(eee)中获取值并将其过滤到(ee:ee)但它总是有1、2、3或4个数字作为时间。因此,您可以首先检查字符串长度,然后使用switch语句确定它是1、2、3还是4,应用0:#或#:#等等
<?php
$duration = "112";
$exploded = str_split($duration);
$exploded[0] = "0".$exploded[0].":";

$final = implode($exploded);
echo $final;
?>