如何在同页面现有PHP脚本中使用<?php echo urlencode($term);?>标签
问题原因
你当前的写法错误在于,已经处于PHP代码执行环境中,不能在单引号包裹的字符串内嵌套<?php ?>标签,PHP不会解析字符串内部的PHP标签,最终传入RSS函数的链接会直接携带未执行的PHP代码文本,无法得到编码后的搜索关键词。
修复方案
直接将urlencode($term)的执行结果和链接前缀做字符串拼接即可,修改后的代码如下:
<?php // 输出RSS feed到页面 output_rss_feed('https://www.speedyfind.net/search/feed.php?Terms=' . urlencode($term), 6, true, true, 200); ?>
全站通用优化建议
如果需要在全站多处调用带搜索关键词的RSS链接,可以把生成逻辑封装为公共函数,放入全局公共引入文件,减少重复编码的出错概率:
// 全局公共函数,可放在全站统一引入的公共PHP文件中 function get_search_rss_url(string $term): string { return 'https://www.speedyfind.net/search/feed.php?Terms=' . urlencode($term); } // 业务页面调用示例 output_rss_feed(get_search_rss_url($term), 6, true, true, 200);
注意事项
- 执行上述代码前需确保
$term变量已经完成赋值,避免出现未定义变量的报错,可提前加判空逻辑做兼容。
内容的提问来源于stack exchange,提问作者James Mackinlay
相关产品推荐
相关产品推荐

