为什么这在 php 中不起作用?

发布于 2025-01-05 12:17:07 字数 1151 浏览 0 评论 0原文

好吧,我正在尝试为 facebook api 输入动态元标记,但发生了一些奇怪的事情。

这是我获取值的方式

$id = $_GET['id'];

$id = intval($id);

,这就是我输入它的地方。

 <meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=<?php echo $id ?       >" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=<?php echo $id ?>" />

但它总是将值输出为 0,即使它不是 0。另外,当我在页面上的其他任何地方回显它时,它会起作用吗?

任何帮助将非常感谢! :D

好吧,iv 刚刚在源代码中看到它正在设置,

<html>
<head>
<title>YourGag - Gag</title>
<meta property="og:title" content="MyGag - Gag" />
<meta property="og:type" content="activity" />
<meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=2" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=2" />
<meta property="og:site_name" content="YourGag" />
<meta property="fb:admins" content="1254694731" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

但是当我使用 facebook 调试器时,它说那里有一个 0 而不是 2!

真的很奇怪!

okay so im trying to enter a dynamic meta tag for the facebook api and some wierd things are happnening.

here is how im getting the value

$id = $_GET['id'];

$id = intval($id);

and this is where i input it.

 <meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=<?php echo $id ?       >" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=<?php echo $id ?>" />

But it is always outputing the value as 0 even when its not 0. Also when i echo it out anywhere else on the page it works?

any help would be great thanks! :D

Okay iv just seen in the source code it is being set

<html>
<head>
<title>YourGag - Gag</title>
<meta property="og:title" content="MyGag - Gag" />
<meta property="og:type" content="activity" />
<meta property="og:url" content="http://blaze-craft.com/matt/gag.php?id=2" />
<meta property="og:image" content="http://blaze-craft.com/matt/get.php?id=2" />
<meta property="og:site_name" content="YourGag" />
<meta property="fb:admins" content="1254694731" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>

but when im use the facebook debugger its saying that there is a 0 there instead of a 2!

seriosly wierd!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

错々过的事 2025-01-12 12:17:07

在尝试转换为 int 之前,您是否尝试过调试 $_GET['id'] 的值?

根据文档(intval):

返回值

成功时为 var 的整数值,失败时为 0 的整数值。空数组
返回0,非空数组返回1

因此 $_GET['id'] 要么是一个空数组,要么不能作为整数值返回。

Have you tried debugging the value of $_GET['id'] before attempting to cast as an int?

Per the documention (intval):

Return Values

The integer value of var on success, or 0 on failure. Empty arrays
return 0, non-empty arrays return 1.

So $_GET['id'] is either an empty array or cannot be returned as an integer value.

夏の忆 2025-01-12 12:17:07

有几件事:

  1. 您是否尝试查看 $_GET['id'] 变量是否已设置?
  2. 您应该转义元标记中发送的 ID。例如 echo urlencode($id);
  3. 如果失败,请创建一个非常简单的页面,如下所示:
if (isset($_GET['id'])) {
  echo "id is set: '".$_GET['id']."'";
}
else {
  echo "id is not set";
}

只是为了看看发生了什么。

A couple things:

  1. did you try seeing if the $_GET['id'] variable is set?
  2. you should escape the ID being sent in the meta tag. E.g. echo urlencode($id);
  3. if that fails, make a very simple page that like this:

if (isset($_GET['id'])) {
  echo "id is set: '".$_GET['id']."'";
}
else {
  echo "id is not set";
}

just to see what's happening.

软的没边 2025-01-12 12:17:07

在使用 intval() 转换之前 $id 的值是多少? intval 的返回值 0 告诉您 $id 不是传递给函数的有效标量值。它是一个对象、一个数组或其他一些导致它失败的值。

作为替代方案,您可以尝试:

$id = (int)$id;

What is the value of $id before you cast it with intval()? The return value of 0 from intval is telling you that $id is not a valid scalar value to pass to the function. It is either an object, an array or some other value that is causing it to fail.

As an alternative you might try:

$id = (int)$id;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文