php - PHP在页面上创建隐藏的超链接
问题描述
我在 Joomla 3.9 站点上使用了一个自定义组件。
下面的代码从数据库中创建带有适当锚点(2 页)的超链接,并且工作正常,除了它还创建了不相关的隐藏链接。
如果您查看页面的来源,您只能看到 href 链接。
IE<a href="https://www.example.com/main-category/sub-cat1/"></a>
我可以在这里尝试什么来确保代码不会创建这些隐藏链接?
else:
JFactory::getDocument()->addStyleDeclaration('@media (max-width:540px){table.all-regions tr td{width: 100% !important;display: inline-block !important;text-align: center !important;}}');
$regionsList = '';
$regionsList .= '<table class="all-regions">';
$regions = $this->get('regions');
for($i = 0;$i <= count($regions); $i+=3):
$regionsList .= '<tr>';
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i]->region_name))).'">'.$regions[$i]->region_name.'</a></td>';
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i+1]->region_name))).'">'.$regions[$i+1]->region_name.'</a></td>';
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i+2]->region_name))).'">'.$regions[$i+2]->region_name.'</a></td>';
$regionsList .= '</tr>';
endfor;
$regionsList .= '</table>';
$text = JString::str_ireplace('{%regions_list%}', $regionsList, $this->article->text);
$this->setBreadcrumbs(
array(
'country'
)
);
endif;
echo $text;
可能有帮助也可能没有帮助的细节:
一页显示 3 个隐藏链接,另外 2 个隐藏链接。隐藏的链接指向我当前所在的同一页面。具有 3 个隐藏链接的页面显示 3 个偶数列的链接,而具有 2 个隐藏链接的页面有一行有 5 个链接,另外 2 行有 4 个链接
解决方案
有更好的方法来完成这一切,但无需重写代码,您需要查看这些元素是否已设置且不为空,否则您将获得空锚:
if(!empty($regions[$i]->region_name)) {
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i]->region_name))).'">'.$regions[$i]->region_name.'</a></td>';
}
if(!empty($regions[$i+1]->region_name)) {
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i+1]->region_name))).'">'.$regions[$i+1]->region_name.'</a></td>';
}
if(!empty($regions[$i+2]->region_name)) {
$regionsList .= '<td style="width: 1%;padding: 9px; line-height: 24px;"><a href="'.JUri::root().'main-category/'.$country.'/'.strtolower(implode('-',explode(' ',$regions[$i+2]->region_name))).'">'.$regions[$i+2]->region_name.'</a></td>';
}
推荐阅读
- python - 计算平均python
- javascript - PHP & JavaScript - 变量
- java - 如何将 MySQL 命令的输出存储到 java 变量(JDBC)中
- azure-ad-b2c - 如何使用 B2C 自定义策略防止密码重复使用
- algorithm - 如何生成以第一个元素为轴的快速排序的最佳数组?
- javascript - 如何将嵌套对象转换为字符串索引对象
- xaml - XAML / UWP 中主题样式的快捷方式
- python - 使用傅里叶变换的时间序列特征提取
- python - 什么时候应该使用 for 循环或 while 循环?
- swift - 保存 Bool/tableView 复选标记 - 第三次幸运