大概明白了要实现的功能,不过不是很明白你最后一句.
好像是模板的变量替换问题
是这样吗$format2='<a href="show.php?id={id, 2}">{title, 2}</a>';
echo preg_replace( "/{(\w+)}/Ue", "checkString( '\\1' )", $format2 );
function checkString( $str )
{
global $arr;
$param = explode( ", ", $str );
if ( count( $param ) > 1 )
return substr( $arr[$param[0], 0, $param[1] );
else
return $arr[$param[0]];
}
好像是模板的变量替换问题
是这样吗$format2='<a href="show.php?id={id, 2}">{title, 2}</a>';
echo preg_replace( "/{(\w+)}/Ue", "checkString( '\\1' )", $format2 );
function checkString( $str )
{
global $arr;
$param = explode( ", ", $str );
if ( count( $param ) > 1 )
return substr( $arr[$param[0], 0, $param[1] );
else
return $arr[$param[0]];
}
解决方案 »
- 求助:Fatal error: Class 'XmlLib_xmlParser' not found
- 关于ThinkPHP基础应用的一问题 急急急!!!在线等!!!
- zend 5.5.1 光标找不到了。
- php 页面跳转后session为空
- php关闭页面而不关闭浏览器怎样清除cookie?
- 如何检测,a,是否包含在,a,b,c,里面?
- mysql都没有问题的,为什么用了mssql就出这个提示呢??
- php怎么处理复选select(不好意思,只有10分了,麻烦知道的进来看看)
- 服务器上的路径
- 请问现在网站放在哪里比较好?要支持php+mysql的。
- 在PHP中echo和print以及include和require的区别?
- 请问一个smarttemplate模板的问题
echo preg_replace('/{(\w+)(,\s*(\d+))?}/e', 'substr($arr[\\1], 0, "\\3"?"\\3":strlen($arr[\\1]))', $format2);$format2='<a href="show.php?id={id, 2}">{title}</a>';
echo preg_replace('/{(\w+)(,\s*(\d+))?}/e', 'substr($arr[\\1], 0, "\\3"?"\\3":strlen($arr[\\1]))', $format2);
加上引号后,无论\\3是否有值,就都是有效的参数形式了
虽然可能期望的是一个数,你却给了一个串。但php会自动将参数的类型转换到期望的类型