我正在学习 Smarty,我只想显示一个人的名字和姓氏......是否有可能或者更好地使用 php?非常感谢
问问题
1697 次
3 回答
2
如果您真的想在 Smarty 中执行此操作,您可以执行此操作。
{assign var="newname" value=" "|explode:$name}
{$newname[0]} {$newname[6]}
更新
或者..我要做的是用 PHP 来做。然后将其分配给 smarty。
<?php
$arr = explode(" ", $name);
$fullname = $arr[0]." ".$arr[6];
$smarty->assign("fullname",$fullname);
?>
然后{$fullname}
在您的模板中使用。
于 2013-06-20T14:28:54.157 回答
2
您可能需要在页面上使用 PHP 作为修饰符来爆炸字符串数据......
{" "|explode:$name}
或试试这个...
{assign var=nameparts value=" "|explode:$name}
试一试...但老实说,在 $name 变量加载到 HTML 页面之前,您最好从 PHP 源代码中进行“爆炸”操作。
更新 为了安全起见,您可以使用 $name,您可以设置一个条件...
{assign var=nameparts value=" "|explode:$name}
{if $nameparts[6] == 'Mendonça'}
<p>then my name is {nameparts[0]} {nameparts[6]}.</p>
{else}
<p>we are dealing with a different name </p>
{/if}
..所有在使用 Smarty 的 HTML 代码中。
于 2013-06-20T14:23:03.410 回答
0
你认为这个解决方案可行吗?从我的测试来看,它正在工作:
{assign var="newname" value=" "|explode:$name}
{assign var=names_count value=$newname|@count}
{if $names_count>2}
{assign var=position value=$names_count-1}
{$newname[0]} {$newname[$position]}
{else}
{$name}
{/if}
于 2013-06-20T15:06:07.337 回答