Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php URL解析并使用smarty获取URL的一部分_Php_Parsing_Smarty - Fatal编程技术网

Php URL解析并使用smarty获取URL的一部分

Php URL解析并使用smarty获取URL的一部分,php,parsing,smarty,Php,Parsing,Smarty,通过使用下面的php代码,我可以获取当前url并执行解析,并获取字符串的一部分。但我的smarty模板文件不支持此代码。我转换的smarty代码工作不正常 php代码: <?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $url_path=$url; $parsed = parse_url($url); $path = explode('/', $parsed['path']); $result

通过使用下面的php代码,我可以获取当前url并执行解析,并获取字符串的一部分。但我的smarty模板文件不支持此代码。我转换的smarty代码工作不正常

php代码:

<?php

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$url_path=$url;

$parsed = parse_url($url);

$path = explode('/', $parsed['path']);

$resulturl =  $parsed['scheme'] . '//' . $parsed['host'] .'/'. $path[1] . '/';

$outurl = $path[1];

 ?> 

if ($outurl == "album") { 
    <h6>Sample text one </h6>
 }
else
{ 
    <h6>Sample text two </h6>
}
{php} 

$url={$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}

$url_path=$url;

$parsed = parse_url($url);

$path = explode('/', $parsed['path']);

$resulturl =  $parsed['scheme'] . '//' . $parsed['host'] .'/'. $path[1] . '/';

$outurl = $path[1];

{/php}

{if $outurl == 'album'}
     <h6>Sample text one </h6>
{else}
     <h6>Sample text two </h6>
{/if}

如果($outurl==“相册”){
示例文本一
}
其他的
{ 
示例文本二
}
智能代码:

<?php

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$url_path=$url;

$parsed = parse_url($url);

$path = explode('/', $parsed['path']);

$resulturl =  $parsed['scheme'] . '//' . $parsed['host'] .'/'. $path[1] . '/';

$outurl = $path[1];

 ?> 

if ($outurl == "album") { 
    <h6>Sample text one </h6>
 }
else
{ 
    <h6>Sample text two </h6>
}
{php} 

$url={$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}

$url_path=$url;

$parsed = parse_url($url);

$path = explode('/', $parsed['path']);

$resulturl =  $parsed['scheme'] . '//' . $parsed['host'] .'/'. $path[1] . '/';

$outurl = $path[1];

{/php}

{if $outurl == 'album'}
     <h6>Sample text one </h6>
{else}
     <h6>Sample text two </h6>
{/if}
{php}
$url={$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}
$url_path=$url;
$parsed=parse_url($url);
$path=explode('/',$parsed['path']);
$resultur=$parsed['scheme'].//'$已分析['host']./'$路径[1]。/;
$outurl=$path[1];
{/php}
{如果$outurl=='album'}
示例文本一
{else}
示例文本二
{/if}

你做得不对。Smarty用于将PHP操作与显示分离。你应该做的很简单:

PHP文件:

<?php

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

$url_path=$url;

$parsed = parse_url($url);

$path = explode('/', $parsed['path']);

$resulturl =  $parsed['scheme'] . '//' . $parsed['host'] .'/'. $path[1] . '/';

$outurl = $path[1];

$smarty->assign('outurl', $outurl);

Smarty是一种模板语言。这不是模板逻辑。首先执行这种类型的逻辑,并将简单的数据传递给模板。我在prestashop网站上也尝试过同样的方法,但php代码被注释掉,无法获取$outurl。因此功能不起作用。@Marcin Nabialek它决不会不起作用。在将$outurl分配给Smarty之前,您是否检查过它的值?您应该使用
$smarty->assign('outurl','album')测试代码
$smarty->assign('outurl','album2')工作正常,因此您的问题可能在其他地方。我认为我在传递$outurl值时犯了错误。如何将outurl值传递到模板文件?我需要将此代码放置在哪里$smarty->assign('outurl',album')@马辛Nabialek@user3489161首先,您当然应该创建Smarty对象,但您可以在计算值之后立即执行此赋值-如我的回答所示。如果它不起作用,可能你在代码中还做了其他事情,或者你使用了一些框架,如果没有完整的代码,就不可能知道你做错了什么。我得到了未定义的索引outurl错误。我已经将php代码放在了我的prestashop根文件夹的php文件中。现在我的问题是,如果我将php文件包含在我的header.tpl php不工作。因此我需要知道如何将值单独传递到header.tpl文件。@Marcin Nabialek