【问题标题】:Variable Javascript to PHP int变量 Javascript 到 PHP int
【发布时间】:2017-03-21 03:04:22
【问题描述】:

我想在 php 中将 Javascript 变量转换为 INT。

示例:

$res = '<script> var res = Math.max(screen.width,screen.height); document.write(res); </script>';

$int = (int)$res;
var_dump($int);

此代码返回 int(0) 或 String 中的值,我需要正确的整数值。 例如 1920 年。

【问题讨论】:

  • 因为 $res 被认为是一个字符串。
  • 我需要解析这个变量
  • 您是否尝试将 JavaScript 变量值分配给 PHP ?
  • 我认为您正在尝试将 JavaScript 变量传递给 PHP。你不能像这样混合两种语言。您需要使用 HTTP 请求将 JavaScript 变量发送到 PHP。

标签: javascript php parsing variables int


【解决方案1】:

当你使用(int) php 尝试将给定的字符串转换为整数,就好像它以数字开头一样,它会使用这个数字,例如:

(int) "123cats"; // 123

你没有任何数字,结果 php 给你一个0。 您不能以这种方式将 javascript 变量传递给 php 脚本。 如果你想这样做,你必须在 ajax 请求中传递它。

【讨论】:

    【解决方案2】:

    PHP脚本在服务器端执行,JS在客户端解释。 在您的情况下,您正在尝试执行back-end 中的front-end 代码。 任务

    $res = '<script> var res = Math.max(screen.width,screen.height); document.write(res); </script>';
    

    server-side 中执行并作为字符串执行。在这种情况下,JS var 分配永远不会发生。 这就是它返回0 的原因。

    你可以只执行以下代码

    $res = '100<script> var res = Math.max(screen.width,screen.height); document.write(res); </script>'; 
    

    它将返回100。因为 int() 会从字符串中提取integer 值。

    【讨论】:

    • 您的代码打印了 100 + 值,例如 (1001920),但仍然是 STRING,我需要 INT 类型
    • 在php-inteval($res)中解析int很容易
    • $res = '
    • 应该的。正确阅读我的答案。这就解释了你的问题。
    • 好的,你的代码返回int类型的int(100),但是我需要javascript的值,比如1920。
    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 2018-12-06
    • 2014-12-20
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2015-02-05
    • 2012-01-01
    相关资源
    最近更新 更多