小编Dig*_*man的帖子

使用PHP进行Chrome原生消息传递

我正在尝试构建一个可以通过Native Messaging与Chrome Extention进行通信的PHP类.

我可以连接到我的代码,但在启动时Chrome会发送

chrome-extension://lkjcciocnocjjgpacggbaikjehbfedbl/ --parent-window=1837060
Run Code Online (Sandbox Code Playgroud)

到我的PHP控制台应用程序(主机).我该怎么回复才能使连接正常工作?在我的PHP代码下面.是的,它很脏,因为它是一个POC项目,我对Chrome Extensions很新,特别是当前的更新.

function out($data = ""){
    $fp = fopen("php://stdout", "w");
    if($fp){
        $response = array("text" => "Ok");
        $message = json_encode($response);
        fwrite($fp, $message);
        fflush($fp);
        slog("[OUTPUT] " . json_encode($response));
        fclose($fp);
        exit(0);
    }else{
        slog("Can't open output stream.");
        exit(1);
    }
}

function err($data){
    $fp = fopen("php://stderr", "w");
    if($fp){
        fwrite($fp, $data);
        fflush($fp);
        fclose($fp);
    }
    return;
}

function in(){
    $data = "";
    $fp = fopen("php://stdin", "r");
    if($fp){
        $data = fgets($fp);
        fclose($fp);       
    }else{
        slog("Can't open input stream.");
        exit(1);
    }
    slog("[INPUT]" …
Run Code Online (Sandbox Code Playgroud)

javascript php google-chrome-extension chrome-native-messaging

5
推荐指数
1
解决办法
551
查看次数

在循环中反应JS/JSX if语句

我真的遇到了理解React逻辑的问题.为什么这个IF不起作用?您可以假设所有类都存在,并且循环也在起作用.好吧,即使条件似乎工作,但我的页面上的输出仍然是空白的.....

    var Feature = React.createClass({
    componentDidMount: function(){
        $('input.rating[type=number]').rating();
        initFeatureInstallReady(this.props.feature.feature_id);
    },
    render: function(){

        var backgroundColor = "white";
        var item;
        var props = this.props;

        this.props.feature.slides.map(function(slide, i){

            if(props.feature.feature_id == "start-home-away" && slide.slide_id == 'review'){

                item = <div className={i == 0 ? "item active" : "item"} key={i} id={slide.slide_id}>
                            <FeatureReviewHomeAway feature={props.feature} slide={slide} />
                        </div>;

            }else if(props.feature.feature_id == "start-goto-sleep" && slide.slide_id == 'review'){

                item = <div className={i == 0 ? "item active" : "item"} key={i} id={slide.slide_id}>
                            <FeatureReviewHomeAway feature={props.feature} slide={slide} />
                        </div>;

            }else{

                item = <div className={i …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-jsx

4
推荐指数
1
解决办法
5907
查看次数

Composer PSR-4 自动加载“找不到类”调试

是的,另一个关于“找不到类”错误的问题。要么是我遗漏了什么,要么是我误解了 PSR-4 逻辑。

我的作曲家库目录结构:

“扫描仪”=>“src”=>“Test.php”

测试.php

namespace MyNS;

class Test
{
}
Run Code Online (Sandbox Code Playgroud)

作曲家.json

"autoload": {
        "psr-4": {
            "MyNS\\": "src/"
        },
}
Run Code Online (Sandbox Code Playgroud)

因此,现在我使用 Composer 将库加载到我的项目中并尝试使用它。

require_once("../vendor/autoload.php");

$test = new MyNS\Test();
Run Code Online (Sandbox Code Playgroud)

这总是导致

“致命错误:未捕获错误:未找到类‘MyNS\Test’。”

。我缺少什么?我已经盯着这个看了好几天了。我更改了文件夹,更改了文件夹名称,将上层更改为下层,反之亦然。似乎什么都不起作用。

我正在使用 PHP 7.2.2 和 Composer 版本 1.2.2

甚至尝试过这个:

require_once("../vendor/autoload.php");

use MyNS\Test;

$scanner = new Test();
Run Code Online (Sandbox Code Playgroud)

更新

我调试了 Composer ClassLoader.php 文件 (findFileWithExtension($class, $ext)) 方法,显然我的文件从未加载,因为我得到了 echo“Done”和 die(); 在此方法的末尾,这意味着找不到该文件,因此未加载该文件。我的composer.json 有什么问题吗?

{
    "name": "test/test",
    "type": "library",
    "description": "",
    "keywords": ["php"],
    "homepage": "",
    "license": "MIT",
    "authors": [
        {
            "name": "",
            "email": "",
            "homepage": …
Run Code Online (Sandbox Code Playgroud)

php autoloader composer-php psr-4

3
推荐指数
1
解决办法
5185
查看次数

找不到变量:device

我陷入了这个phonegap项目.在Android和iOS <= 7上,一切都很完美,但在iOS> = 8.0时失败.将出现一个弹出窗口,其中显示消息:"找不到变量:device"

在此输入图像描述

这是我得到的消息:

这是我的HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>
        <script type="text/javascript" src="cordova.js" charset="utf-8"></script>
        <script type="text/javascript" src="js/PushNotification.js" charset="utf-8"></script>
    </head>
    <body onload="documentReady();">
        <div class="app">
            <h1>Apache Cordova</h1>
            <div id="deviceready" class="blink">
                <p class="event listening">Connecting to Device</p>
                <p class="event received">Device is Ready</p>
            </div>
        </div>
        <script type="text/javascript" src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我在标签底部加载的'index.js'.

var myPushNotification;

// result …
Run Code Online (Sandbox Code Playgroud)

phonegap-plugins cordova phonegap-build phonegap-pushplugin ios8

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