小编ajm*_*way的帖子

抑制"老鼠!WebGL遇到障碍".Google Chrome中的错误栏

我最近开始在我正在开发的网站上使用WebGL.它被用作增强功能,如果WebGL不受支持或出现错误,该网站将回退到画布渲染.

不幸的是,当Google Chrome中出现WebGL异常时,会显示错误消息栏.在用户与之交互之前,此栏不会消失.如果他们重新加载或导航到其他页面,则下次站点尝试使用WebGL时,该消息将重新出现.

对于我的站点,这意味着WebGL错误消息永远不会消失,因为每个页面都尝试使用WebGL.一旦发生错误,Chrome将不再在同一站点上使用WebGL,直到用户将其指示为Reload,因此连续错误消息实际上并不表示连续错误,只是连续尝试使用WebGL.


一旦发生WebGL错误,只需运行以下命令即可在该站点上重现此对话框:

document.createElement('canvas').getContext('experimental-webgl');
Run Code Online (Sandbox Code Playgroud)

这不会引发任何异常,并且我.onerror没有调用canvas元素上的方法.

我无法深入研究这个因为我无法可靠地重现WebGL错误.(即使我可以在我的计算机上复制一个,但在其他计算机上可能无法再现.)


对于依赖WebGL的站点来说,这种行为是合理的,但是我的做法并不合适,因此消息只会让用户分心和混淆.

有没有办法抑制此错误消息?一旦发生错误,我不介意回到忽略 WebGL 的Ignore行为.

javascript google-chrome webgl

13
推荐指数
1
解决办法
2万
查看次数

在boolean上调用成员函数fetch()

我收到此错误:

致命错误:在第34行的C:\ xampp\htdocs\repo\generator\model\database.php中调用boolean上的成员函数fetch()

当我运行此代码时:

    class database
    {
        private $user = 'root';
        private $pass = '';
        public $pdo;

        public function connect() {
            try {
                $this->pdo = new PDO('mysql:host=localhost; dbname=generatordatabase', $this->user, $this->pass);
                echo 'Po??czenie nawi?zane!';
            }
            catch(PDOException $e) {
                echo 'Po??czenie nie mog?o zosta? utworzone: ' . $e->getMessage();
            }
        }

        public function createTable() {

                        $q = $this->pdo -> query('SELECT * FROM article');
                          while($row = $q->fetch()) {
                              echo $row['id'].' ';
                          }
                          $q->closeCursor();
        }
    }

    ?>
Run Code Online (Sandbox Code Playgroud)

php boolean fetch

10
推荐指数
1
解决办法
7万
查看次数

php json_encode 创建未转义的换行符

这是我的php:

$response = array(
    'errors' => $this->errors,
    'orders_fulfilled' => $this->orders_fulfilled,
);
echo '<pre>$response: ' . print_r($response, true) . '</pre>';

$json = json_encode($response, JSON_HEX_APOS);
echo '<pre>$json: ' . print_r($json, true) . '</pre>';
Run Code Online (Sandbox Code Playgroud)

这显示了以下输出:

$response: Array
(
    [errors] => Array
        (
            [0] => Error text

        )

    [orders_fulfilled] => 0
)

$json: {"errors":["Error text\n"],"orders_fulfilled":0}
Run Code Online (Sandbox Code Playgroud)

题:

当它们在 json 字符串中无效时,为什么 php 会从源 php 数组中的实际换行符中json_encode()创建未转义的\n字符?

我在此接受的答案看到的建议是为了躲避源换行,即从转换\n\\n。那么为什么 PHPjson_encode()不应该在这里这样做呢?就目前而言,它直接创建了一个JSON.Parse()在 javascript中阻塞的 json 字符串。例如,尝试在控制台中运行它:

JSON.parse('{"errors":["Error text\n"],"orders_fulfilled":0}');

VM1628:1 …

javascript php arrays json

0
推荐指数
1
解决办法
2782
查看次数

如何将JSON字符串转换为PHP对象或数组创建*代码*

首先:这是一个完全不同的问题- 如何将JSON字符串转换为数组

我的问题...


我有分配给php变量的有效JSON字符串$json

我知道我可以在运行时将json_decode($json, true);其解析为php数组,但是我想超越一步,将其转换为可重用的php数组代码字符串,可以将其简单地复制并粘贴到php脚本中,例如$array = 'php array code here'

对于那些不可避免地会问“为什么?”的人,例如:

复制API文档中的示例JSON端点参数,然后快速转换为php数组字符串代码,以粘贴到测试脚本中,作为发出POST请求的有效测试参数


我知道我可以这样做:

$json = '
  [
    {
      "ID": "1",
      "Name": "Test One"
    },
    {
      "ID": "2",
      "Name": "Test Two"
    }
  ]';

echo '<pre>';
echo '$phpArray = ' . print_r(json_decode($json));
echo '</pre>';
exit;
Run Code Online (Sandbox Code Playgroud)

让你靠近...

$phpArray = Array
(
    [0] => stdClass Object
        (
            [ID] => 1
            [Name] => Test One
        )

    [1] => stdClass Object
        (
            [ID] => 2
            [Name] => Test Two …
Run Code Online (Sandbox Code Playgroud)

php arrays json object data-conversion

0
推荐指数
1
解决办法
464
查看次数