请教一个 PHP 调用问题

2016-02-29 23:27:07 +08:00
 yyyyyyyhb
我在 PHP 里用了这个来调用网页标题

<?php
function curPageURL()
{
$pageURL = 'http';

if ($_SERVER["HTTPS"] == "on")
{
$pageURL .= "s";
}
$pageURL .= "://";

if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":" . $_SERVER["SERVER_PORT"] . $_SERVER['PHP_SELF'];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER['PHP_SELF'];
}
return $pageURL;
}
?>

然后希望能在多说评论框的代码里调用,但是怎么弄都不对,多说后台总是显示双引号里面的内容比如<?php mc_the_name(); ?>而不是我希望调用的网页标题。

<div class="ds-thread" data-thread-key="<?php mc_the_name(); ?>" data-title="<?php mc_the_name(); ?>" data-url="<?php curPageURL(); ?>"></div>

应该怎么改?求解
3186 次点击
所在节点    PHP
23 条回复
cxbig
2016-02-29 23:29:55 +08:00
如果你的 php 文件在浏览器下打开直接看到了<?php ... ?>的标记,说明你的 apache2 或 nginx 没有加载 php 组件
yyyyyyyhb
2016-02-29 23:32:42 +08:00
@cxbig 但是 php 组件加载了啊,所有 php 页面都是正常的,只是这个调用有问题
yangqi
2016-02-29 23:33:58 +08:00
php.ini 里 short_open_tag 没有打开
manhere
2016-02-29 23:34:04 +08:00
多说的编辑框怎么会让你直接运行 PHP ?
MaiCong
2016-02-29 23:38:55 +08:00
要输出 PHP 函数,必须先让 PHP 能正常运行,楼主看看当前代码所在文件是不是 PHP 文件。
yyyyyyyhb
2016-02-29 23:39:00 +08:00
@yangqi 我看了一下打开了呀
yyyyyyyhb
2016-02-29 23:39:51 +08:00
@manhere 这个是通用编辑框要求要的东西啊
yangqi
2016-02-29 23:40:17 +08:00
@yyyyyyyhb 那就是楼上说的多说的评论框不让运行 php 代码,你还是别折腾了
shiji
2016-02-29 23:44:48 +08:00
@yangqi <?php 不是 shortopentag

能否不能把整个 PHP 复制过来看看?(找不能执行 php 的问题)

另外,即使? php 能执行, 你用 return 返回的值不能被打印,要么 return $pageURL; 换成 echo $pageURL ;要么<?php echo curPageURL(); ?>
shiji
2016-02-29 23:47:12 +08:00
好吧,至于那个多说评论框是什么我不知道。。。反正你得确定 PHP 能运行
yyyyyyyhb
2016-02-29 23:55:34 +08:00
@shiji 那个系统储存评论代码是在一个 php 里
<?php
$mc_config = array (
'user_nick' => '***',
'comment_code' => '<!-- 多说评论框 start -->
<div class="ds-thread" data-thread-key="<?php mc_the_name(); ?>" data-title="<?php mc_the_name(); ?>" data-url="<?php curPageURL(); ?>"></div>
<!-- 多说评论框 end -->
<!-- 多说公共 JS 代码 start (一个网页只需插入一次) -->
<script type="text/javascript">
var duoshuoQuery = {short_name:"***"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- 多说公共 JS 代码 end -->',
'url_rewrite' => 'off',
'post_nums' => '10',
)
?>
然后主页的 php 是这样的
<?php
function curPageURL()
{
$pageURL = 'http';

if ($_SERVER["HTTPS"] == "on")
{
$pageURL .= "s";
}
$pageURL .= "://";

if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":" . $_SERVER["SERVER_PORT"] . $_SERVER['PHP_SELF'];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER['PHP_SELF'];
}
return $pageURL;
}
?>
<!DOCTYPE html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1">
<title><?php if (mc_is_post() || mc_is_page()) { mc_the_title(); ?> | <?php mc_site_name(); } else { mc_site_name(); ?> | <?php mc_site_desc(); }?></title>
<link href="<?php mc_theme_url('style.css'); ?>" type="text/css" rel="stylesheet"/>
<link rel="shortcut icon" href="/favicon.ico"/>
<link rel="bookmark" href="/favicon.ico" type="image/x-icon"/>
</head>
<body>
<div id="main">
<div id="header">
<div id="sitename"><a href="<?php mc_site_link(); ?>"><?php mc_site_name(); ?></a></div>
</div>
<div id="content">
<div id="content_box">
<?php if (mc_is_post()) { ?>
<div class="post">
<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags"><?php mc_the_tags('','',''); ?> by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div>
<div class="content"><?php mc_the_content(); ?></div>
</div>
<?php if (mc_can_comment()) { ?>
<?php mc_comment_code(); ?> //评论似乎在这里
<?php } ?>
<?php } else if (mc_is_page()) { ?>
<div class="post">
<?php /*<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags">by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div> */ ?>
<div class="content"><?php mc_the_content(); ?></div>
</div>
<?php if (mc_can_comment()) { ?>
<?php mc_comment_code(); ?> //评论似乎在这里
<?php } ?>
<?php } else if (mc_is_archive()) { ?>
<div class="date_list">
<h1>月份</h1>
<ul>
<?php mc_date_list(); ?>
</ul>
</div>
<div class="tag_list">
<h1>标签</h1>
<ul>
<?php mc_tag_list(); ?>
</ul>
</div>
<div class="clearer"></div>
<?php } else { ?>
<?php if (mc_is_tag()) { ?>
<div id="page_info"><span><?php mc_tag_name(); ?></span></div>
<?php } else if (mc_is_date()) { ?>
<div id="page_info"><span><?php mc_date_name(); ?></span></div>
<?php } ?>
<div class="post_list">
<?php while (mc_next_post()) { ?>
<div class="post">
<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags"><?php mc_the_tags('','',''); ?> by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div>
<div class="clearer"></div>
</div>
<?php } ?>
<div id="page_bar">
<?php if (mc_has_new()) { ?>
<span class="prev" style="float:left;"><?php mc_goto_new('&larr;较新文章'); ?></span>
<?php } ?>
<?php if (mc_has_old()) { ?>
<span class="next" style="float:right;"><?php mc_goto_old('早期文章&rarr;'); ?></span>
<?php } ?>
<div class="clearer"></div>
</div>
<div class="clearer"></div>
</div>
<?php } ?>
</div>
</div>
<div id="side">
<div id="navbar">
<ul>
<li><a href="<?php mc_site_link(); ?>/">首页</a></li>
<?php
if($mc_config['url_rewrite'] == 'on'){
$archive_url = '/archive/';
$rss_url = '/rss/';
}else{
$archive_url = '/?archive/';
$rss_url = '/?rss/';
}
?>
<li><a href="***">关于</a></li>
<li><a href="<?php mc_site_link(); echo $archive_url; ?>">存档</a></li>
<li><a href="<?php mc_site_link(); echo $rss_url; ?>">订阅</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
</body>
</html>
yyyyyyyhb
2016-02-29 23:56:06 +08:00
@MaiCong 是的啊,在一个 php 里用数组保存然后调用的
yangqi
2016-02-29 23:59:26 +08:00
靠。。。你<div>那些 html 已经在<?php ?>里面了,而且前面是单引号,当然没有用了。。。最基本的东西,改成下面的

<div class="ds-thread" data-thread-key="' . mc_the_name() . '" data-title="' . mc_the_name() . '" data-url="' . curPageURL() . '"></div>
cevincheung
2016-02-29 23:59:31 +08:00
..


大哥……你在函数里是 return 的……貌似应该这么用:
<?php echo func(); ?>

你的 echo 的呢?
MaiCong
2016-03-01 00:05:15 +08:00
@yyyyyyyhb review 了下代码:

<?php
$mc_config = array (
'user_nick' => '***',
'comment_code' => '<!-- 多说评论框 start --><div class="ds-thread" data-thread-key="' . mc_the_name() . '" data-title="' . mc_the_name() . '" data-url="' . curPageURL() . '"></div> <!-- 多说评论框 end --> <!-- 多说公共 JS 代码 start (一个网页只需插入一次) --> <script type="text/javascript"> var duoshuoQuery = {short_name:"***"}; (function() { var ds = document.createElement("script"); ds.type = "text/javascript"";ds.async = true; ds.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//static.duoshuo.com/embed.js"; ds.charset = "UTF-8"; (document.getElementsByTagName("head")[0] || document.getElementsByTagName("body")[0]).appendChild(ds); })(); </script> <!-- 多说公共 JS 代码 end -->',
'url_rewrite' => 'off',
'post_nums' => '10',
)
?>

然后主页的 php 是这样的

<?php
function curPageURL()
{
$pageURL = 'http';

if ($_SERVER["HTTPS"] == "on")
{
$pageURL .= "s";
}
$pageURL .= "://";

if ($_SERVER["SERVER_PORT"] != "80")
{
$pageURL .= $_SERVER["SERVER_NAME"].":" . $_SERVER["SERVER_PORT"] . $_SERVER['PHP_SELF'];
}
else
{
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER['PHP_SELF'];
}
return $pageURL;
}
?>
<!DOCTYPE html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name=viewport content="width=device-width, initial-scale=1, maximum-scale=1">
<title><?php if (mc_is_post() || mc_is_page()) { mc_the_title(); ?> | <?php mc_site_name(); } else { mc_site_name(); ?> | <?php mc_site_desc(); }?></title>
<link href="<?php mc_theme_url('style.css'); ?>" type="text/css" rel="stylesheet"/>
<link rel="shortcut icon" href="/favicon.ico"/>
<link rel="bookmark" href="/favicon.ico" type="image/x-icon"/>
</head>
<body>
<div id="main">
<div id="header">
<div id="sitename"><a href="<?php mc_site_link(); ?>"><?php mc_site_name(); ?></a></div>
</div>
<div id="content">
<div id="content_box">
<?php if (mc_is_post()) { ?>
<div class="post">
<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags"><?php mc_the_tags('','',''); ?> by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div>
<div class="content"><?php mc_the_content(); ?></div>
</div>
<?php if (mc_can_comment()) { ?>
<?php mc_comment_code(); ?> //评论似乎在这里
<?php } ?>
<?php } else if (mc_is_page()) { ?>
<div class="post">
<?php /*<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags">by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div> */ ?>
<div class="content"><?php mc_the_content(); ?></div>
</div>
<?php if (mc_can_comment()) { ?>
<?php mc_comment_code(); ?> //评论似乎在这里
<?php } ?>
<?php } else if (mc_is_archive()) { ?>
<div class="date_list">
<h1>月份</h1>
<ul>
<?php mc_date_list(); ?>
</ul>
</div>
<div class="tag_list">
<h1>标签</h1>
<ul>
<?php mc_tag_list(); ?>
</ul>
</div>
<div class="clearer"></div>
<?php } else { ?>
<?php if (mc_is_tag()) { ?>
<div id="page_info"><span><?php mc_tag_name(); ?></span></div>
<?php } else if (mc_is_date()) { ?>
<div id="page_info"><span><?php mc_date_name(); ?></span></div>
<?php } ?>
<div class="post_list">
<?php while (mc_next_post()) { ?>
<div class="post">
<h1 class="title"><?php mc_the_link(); ?></h1>
<div class="tags"><?php mc_the_tags('','',''); ?> by <?php mc_nick_name(); ?> at <?php mc_the_date(); ?></div>
<div class="clearer"></div>
</div>
<?php } ?>
<div id="page_bar">
<?php if (mc_has_new()) { ?>
<span class="prev" style="float:left;"><?php mc_goto_new('&larr;较新文章'); ?></span>
<?php } ?>
<?php if (mc_has_old()) { ?>
<span class="next" style="float:right;"><?php mc_goto_old('早期文章&rarr;'); ?></span>
<?php } ?>
<div class="clearer"></div>
</div>
<div class="clearer"></div>
</div>
<?php } ?>
</div>
</div>
<div id="side">
<div id="navbar">
<ul>
<li><a href="<?php mc_site_link(); ?>/">首页</a></li>
<?php
if($mc_config['url_rewrite'] == 'on'){
$archive_url = '/archive/';
$rss_url = '/rss/';
}else{
$archive_url = '/?archive/';
$rss_url = '/?rss/';
}
?>
<li><a href="***">关于</a></li>
<li><a href="<?php mc_site_link(); echo $archive_url; ?>">存档</a></li>
<li><a href="<?php mc_site_link(); echo $rss_url; ?>">订阅</a></li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
</body>
</html>
yyyyyyyhb
2016-03-01 00:09:09 +08:00
@yangqi 依旧没有用啊( ▼-▼ )后台调用出来就是' . mc_the_name() . '
yyyyyyyhb
2016-03-01 00:11:44 +08:00
@cevincheung 这个试过了并没有用
yyyyyyyhb
2016-03-01 00:12:04 +08:00
@MaiCong 报告大大,还是木有用::>_<::
msg7086
2016-03-01 04:59:28 +08:00
@yyyyyyyhb #15 MaiCong 的看上去并没有问题。如果你觉得没有用,请说清楚点,不要一句没有用然后继续让人猜吧……
ershisi
2016-03-01 08:33:49 +08:00
没用过多说,但是从理解上来看。这个数组中的这个元素是被直接输出了的。 php 只进行了数组输出的解析。输出后按照普通字符对待。所以你这里如果能用 js 进行解决的话,就不要放在后端处理了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/260047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX