2016-02-01 47 views
1

快速的问题,因为我拉我的听到了!

在一个PHP文件中,我有不同的项目,如联系方式等,我已经通过$ this-> item->链接显示了一个完美的URL。我只想让URL点击,所以我有下面的代码:

echo "<a href='$this->item->contactlink' target='new'>"; 
echo $this->item->contactlink; 
echo '</a>'; 

此链接不起作用,网站内保持了404和URL看起来像:http://domain.co.uk/JObject-> CONTACTLINK

我可以做什么或错过了哪些链接可点击?

亲切的问候 利亚姆

+0

PHP运行后,html看起来像什么? –

+0

页面加载正常,只是如果你悬停或点击链接,它会尝试去http://domain.co.uk/JObject->链接,而不是去实际的链接。很明显,该URL不存在,所以它显示404. – user3711642

+2

在你的问题中你说这个:_“我已经通过$ this-> item->链接显示了一个完美的URL”_是这样的:'$ this - > item-> link'或this:'$ this-> item-> contactlink'。无论哪种情况,你能提供每个人的'echo'结果吗? – CodeGodie

回答

-1

尝试:

<a href="<?php echo $this->item->contactlink; ?>" target='_blank'> 
    <?php echo $this->item->contactlink; ?> 
</a> 

或较短的版本:

<a href="<?= $this->item->contactlink; ?>" target='_blank'> 
    <?= $this->item->contactlink; ?> 
</a> 

目标= '新' 可能是问题的一部分 - 我相信目标= _blank是标准。不是100%的问题,没有看到你如何建立'$这个'。另外从html中拉出php元素有助于清除链接引用。也许有链接的额外报价?

+0

“尝试”不是答案。提供详细信息,并解释为什么这是一个答案,以及它如何解决他们的问题。 – CodeGodie

+0

@CodeGodie如果它的工作,这绝对是一个答案。但我为您的观看乐趣添加了更多解释。 –

+0

它不适合我的观看乐趣。这是一个社区。当你写一个答案时,你需要以一种可以帮助原始帖子的方式写出答案,而且还有任何未来的用户在寻找相同的答案。感谢您更新您的答案。 – CodeGodie

1

你遇到一个PHP解析器故障:它不是“贪婪”。使用嵌套的对象引用,或多维阵列,在一个" -quoted串仅解析对象或阵列的第一个“尺寸”作为对象/阵列的一部分:

php > class z { function __toString() { return get_class($this); } } 
php > $x = new z(); 
php > $x->foo = new z(); 
php > $x->foo->bar = new z(); 
php > echo "$x // $x->foo // $x->foo->bar"; 
z // z // z->bar 

注意z->bar上的最后部分的回声。 PHP解析器看到$x->foo和STOPPED解析,将->bar保留为纯文本,而不是对象的一部分。

您需要使用{} -Extended字符串语法:

php > echo "$x // $x->foo // {$x->foo->bar}"; 
z // z // z 

->bar怎么没得到输出。

而且同上一个数组:

$foo['bar']['baz'] = 'qux'; 
echo "$foo[bar][baz] {$foo['bar']['baz']}"; 
PHP Notice: Array to string conversion in php shell code on line 1 
Array[baz] qux 

注意如何$foo['bar']成为第一部分中的字Array,而qux在第二正常输出。

+0

谢谢Marc的解释。我有点失落,但必须阅读更多内容! – user3711642