小编Yoo*_*one的帖子

用PHP创建Web服务器(不带Apache)

我刚试过这段代码:

<?php
set_time_limit(0);

$address = '176.9.117.136';
$port = 9000;

$sock = socket_create(AF_INET, SOCK_STREAM, 0);
socket_bind($sock, $address, $port) or die('Could not bind to address');

while(1)
{
    socket_listen($sock);
    $client = socket_accept($sock);

    $input = socket_read($client, 1024);
    echo $input;

    $output = 'URL: http://ip-of-my-server:9000/
HTTP/1.1 200 OK
Date: Tue, 10 Jul 2012 16:58:23 GMT
Server: TestServer/1.0.0 (PHPServ)
Last-Modified: Fri, 06 Jul 2012 14:29:58 GMT
ETag: "13c008e-1b9-4c42a193de580"
Accept-Ranges: bytes
Content-Length: 441
Vary: Accept-Encoding
Content-Type: text/html

';
    socket_write($client, $output);

    socket_close($client);
}

socket_close($sock);
?>
Run Code Online (Sandbox Code Playgroud)

但有一个问题.Apache没有使用$ output的内容作为标题,而是返回自己的标题...

我不知道为什么,因为我通过这个命令执行脚本:php …

php sockets apache webserver http

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

从Chrome扩展程序控制YouTube播放器

我正在开发一个Google Chrome扩展程序,需要接管YouTube视频的所有控件(播放,暂停,下一个,上一个,更改音量,在X秒开始播放视频等).我尝试了以下方法:

第一种方法:使用content_scripts

我manifest.json包含以下内容:

"content_scripts": [
    {
        "matches": ["https://www.youtube.com/*"],
        "js": ["scripts/jquery.js", "scripts/in_page.js"]
    }
],
Run Code Online (Sandbox Code Playgroud)

我正在为每个YouTube链接加载脚本,不仅/watch*因为现在YouTube导航完全使用AJAX,因此页面没有完全刷新,如果我在搜索页面上然后点击视频,则扩展名不会我装了我的content_scripts.

我是如何接管控件的

我成功地触发了YouTube播放器上的简单点击事件,例如播放,暂停,上一个视频,下一个视频.

例如,这可以暂停视频:

$("#player-api .html5-video-controls .ytp-button-pause").trigger("click");
Run Code Online (Sandbox Code Playgroud)

但似乎我无法触发事件,例如单击进度条以从视频的特定时刻播放或重新启动视频.

我尝试了这段代码没有成功(使用jQuery $.Event):

var click = $.Event("click");
click.clientX = 0; // Beginning of the video
click.clientY = 0; // I also tried several other coordinates
$("#player-api .html5-video-controls .html5-progress-bar").trigger(click);
Run Code Online (Sandbox Code Playgroud)

(我也尝试点击每个孩子.html5-progress-bar,但没有任何效果.)

第二种方法:使用注入的脚本

由于我似乎遇到了第一种方法的死胡同,然后我尝试了其他方法:直接在页面内部注入脚本.

我manifest.json包含以下内容:

"content_scripts": [
    {
        "matches": ["https://www.youtube.com/*"],
        "js": ["scripts/jquery.js", "scripts/isolated.js"]
    }
],

"web_accessible_resources": [
    "scripts/injected.js"
], …
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-injection google-chrome-extension jquery-events

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

十进制和基数之间的转换36

我想用PHP转换基数为36的数字.该函数base_convert无法正常工作,因为我想转换大数字:如果我将它从基数36再次转换为十进制,我不会得到我的初始数字.

我试过在多个网站上给出了一些功能,但我从来没有得到相同的结果.此外,这两个网站(在Javascript中)给出相同的结果:

例如1010701001118000000000000000必须转换为3IZS0ZE1RQ68W8SSW4.

以下是我尝试过的功能(哪些功能不起作用):

php base36

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

如何在我的课程中使用$ db而不是$ GLOBALS ['db']?

我需要$GLOBALS['db']在我的类中使用($db在我的index.php中定义),但是$GLOBALS['db']当我不得不调用它时我不想使用它.

我在课程开头写了这段代码:

class ClassName
{
    var $db;

    public function __construct()
    {
        $this->db = $GLOBALS['db'];
    }

    public function test()
    {
        $val = $this->db->oneValue('SELECT first_name FROM users LIMIT 0, 1');
        echo $val->first_name;
    }
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢这个; 我更喜欢直接$db在我的代码中使用.有没有一种解决方案能够调用$GLOBALS['db']的$db?

php oop class

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