如何用变量替换PHP代码中重复的文件名引用?
如何在HTML的href属性中使用PHP变量替换重复的文件名?
你只需要在HTML的href属性中嵌入PHP代码输出$filename变量,就能替换掉所有硬编码的"joey_all"。
基础替换方法
将每个href中的joey_all替换为<?php echo $filename; ?>,示例如下:
原代码片段:
<a href="joey_all.php?column=status&order=<?php echo $asc_or_desc; ?>">Status<i class="fas fa-sort<?php echo $column == 'status' ? '-' . $up_or_down : ''; ?>"></i></a>
修改后:
<a href="<?php echo $filename; ?>.php?column=status&order=<?php echo $asc_or_desc; ?>">Status<i class="fas fa-sort<?php echo $column == 'status' ? '-' . $up_or_down : ''; ?>"></i></a>
按照这个方式替换所有表头的href属性即可,后续修改文件名时只需调整$filename变量的值,无需逐个修改每个链接。
进一步优化:用循环消除重复代码
你的代码存在大量重复的表头和表格行结构,建议将列信息定义为数组,通过PHP循环生成内容,进一步降低维护成本:
- 先定义列信息数组(放在PHP代码段中):
$filename = "joey_all"; $columns = [ 'status' => 'Status', 'ordered_by' => 'Ordered By', 'order_date' => 'Order Date', 'cart_number' => 'Cart Number', 'po_cc' => 'PO', 'vendor' => 'Vendor', 'item_number' => 'Item#', 'description' => 'Description', 'take_to' => 'Take To', 'final_location' => 'Final Location', 'received_special_notes' => 'Receiving Instructions', 'received_by' => 'Received By', 'date_received' => 'Date Received', 'carrier' => 'Carrier', 'confirmed' => 'Ariba Confirmed', 'capital_eq' => 'Capital EQ' ];
- 循环生成表头:
<tr> <?php foreach ($columns as $colName => $displayName): ?> <th> <a href="<?php echo $filename; ?>.php?column=<?php echo $colName; ?>&order=<?php echo $asc_or_desc; ?>"> <?php echo $displayName; ?> <i class="fas fa-sort<?php echo $column == $colName ? '-' . $up_or_down : ''; ?>"></i> </a> </th> <?php endforeach; ?> </tr>
- 循环生成表格内容:
<?php while ($row = $result->fetch_assoc()): ?> <tr> <?php foreach ($columns as $colName => $displayName): ?> <td<?php echo $column == $colName ? $add_class : ''; ?>> <?php echo $row[$colName]; ?> </td> <?php endforeach; ?> </tr> <?php endwhile; ?>
这样修改后,不仅文件名只需维护一个变量,后续新增、删除或修改列时,只需调整$columns数组,无需重复修改大量HTML代码,复制文件后也能快速适配新的需求。
内容的提问来源于stack exchange,提问作者Jozef Xie
相关产品推荐
相关产品推荐

