V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
wending
V2EX  ›  PHP

PHP 模拟浏览器在控制台输入内容回车

  •  
  •   wending · Jun 9, 2017 · 4494 views
    This topic created in 3244 days ago, the information mentioned may be changed or developed.
    请教 PHP and JS 大神,如何才能够用 PHP 模拟用户在浏览器的控制台输入内容?


    比如我打开任意一个网站,然后在控制台输入 alert("你好")

    然后网站就会弹出提示,然后我想利用 PHP 实现,请教。


    提醒:不是控制台的 log 或者 error 输入那类,
    Supplement 1  ·  Jun 9, 2017
    看我视频上的描述吧 http://aasssv.nos-eastchina1.126.net/PHP 模拟控制台操作.mov
    Supplement 2  ·  Jun 9, 2017
    上面的链接不行,换这个 http://aasssv.nos-eastchina1.126.net/PHPconsole.mov
    Supplement 3  ·  Jun 9, 2017
    35 replies    2017-06-12 16:48:55 +08:00
    wending
        1
    wending  
    OP
       Jun 9, 2017 via iPhone
    OK ?
    cxbig
        2
    cxbig  
       Jun 9, 2017
    用 PHP 输出一段 JS 代码即可。
    浏览器只能跑 JS,所以 PHP 只能是送一段 JS 代码到加载的页面。
    jtsai
        3
    jtsai  
       Jun 9, 2017
    <?php echo '<script>alert("你好")</script>'
    rekulas
        4
    rekulas  
       Jun 9, 2017
    这题意。。我都没看懂呢,用 php 实现什么?实现 alert ?那是不可能的。仅仅是调用 alert,那又没什么好实现的
    Fishdrowned
        5
    Fishdrowned  
       Jun 9, 2017 via Android
    你是不是要这个
    php -a
    wending
        6
    wending  
    OP
       Jun 9, 2017
    @Fishdrowned 不是
    qiayue
        7
    qiayue  
    PRO
       Jun 9, 2017
    直接说出你的原始需求
    jeffw
        8
    jeffw  
       Jun 9, 2017
    在说啥?没看懂
    ajan
        10
    ajan  
       Jun 9, 2017
    不能实现
    jugelizi
        11
    jugelizi  
       Jun 9, 2017
    至少按你说的请死了心
    Fishdrowned
        12
    Fishdrowned  
       Jun 9, 2017
    wending
        13
    wending  
    OP
       Jun 9, 2017
    @Fishdrowned 还看不懂。
    feiyuanqiu
        14
    feiyuanqiu  
       Jun 9, 2017 via iPhone
    selenium
    t6attack
        15
    t6attack  
       Jun 9, 2017
    然而控制台是浏览器的一部分。脱离了浏览器,就不存在控制台这个概念了。

    至于模拟浏览器行为?任何语言,都可以简单模拟 http 请求。但模拟浏览器行为,就必须借助一个内核引擎,比如 webkit。你也可以调用别人封装好的,phantomjs 这种。
    至于 php 实现的浏览器引擎?或者封装了 webkit 的第三方扩展?目前还没有。

    我感觉,你是对 客户端、服务端、后台服务器运行的代码、前台给浏览器解析代码。。这些概念没明确
    rekulas
        16
    rekulas  
       Jun 9, 2017
    你搞错了概念,你想做的是前端控制,php 只负责后端处理,不可能在客户端执行(虽然有能让 php 执行 js 的框架但那也是在后端),你可能想学点 js
    nutting
        17
    nutting  
       Jun 9, 2017 via Android
    php 是后台,最终就是产生 html 和 js,逻辑要搞清楚。浏览器的控制台是浏览器自己的功能,再说控制台不就是执行 js ?你要啥真正的需求,能不能变通实现
    txlty
        18
    txlty  
       Jun 9, 2017
    大概明白了楼主的愿望。其实想用 php 编写油猴脚本。
    那么,你需要的是一个 JS 实现的 php 解释引擎。。
    lslqtz
        19
    lslqtz  
       Jun 10, 2017
    楼主是希望使用 PHP 当 JS 用,而且还 TM 希望能操控浏览器。。
    两个条件:
    1、JS 实现的 PHP 解释引擎。
    2、一个浏览器插件 /扩展。
    ffkjjj
        20
    ffkjjj  
       Jun 10, 2017 via iPhone
    不能。
    mingyun
        21
    mingyun  
       Jun 10, 2017
    没法实现吧
    ety001
        22
    ety001  
       Jun 10, 2017
    表示看视频也没有看明白到底想干啥。。。
    hvsy
        23
    hvsy  
       Jun 10, 2017 via iPhone
    楼主应该是想用 php 来做自动化的发帖之类的功能。这表达能力也没有谁了。
    wending
        24
    wending  
    OP
       Jun 10, 2017
    @hvsy 你错了,不是这样,我知道模拟登录和发帖,我会做,但我要求的是模拟点击
    wintercoder
        25
    wintercoder  
       Jun 10, 2017
    你需要写个游猴或 chrome 扩展
    hvsy
        26
    hvsy  
       Jun 10, 2017
    @wending 你还是说一下为什么你需要这个"模拟点击"吧.你这样藏着掖着真是累的慌.如果你是想实现百度页面的那种在 console 里面输出的话.直接在 php 页面里面引入一个 js 文件.然后在 js 文件里面调用 console.log 就可以了
    AJian
        27
    AJian  
       Jun 10, 2017
    大家都没用过 phantom.js ?
    AJian
        28
    AJian  
       Jun 10, 2017
    @wending 模拟点击,js 可以直接做啊,比如你用 jQuery,$('xxx').trigger('click')
    AJian
        29
    AJian  
       Jun 10, 2017
    https://github.com/jonnnnyw/php-phantomjs github 上看到了这个,不知道行不行
    wending
        30
    wending  
    OP
       Jun 10, 2017
    @hvsy 不是那样,我知道你的,这个我试过了,只是显示,支付宝页面也有 console.log
    @AJian 我知道 js 可以这样,但是我想用 PHP 来实现啊,,
    @AJian 没用过
    hvsy
        31
    hvsy  
       Jun 10, 2017 via iPhone
    @wending 你不说出目的来很无语,你没有搞明白 php 是干啥的,php 只是返回文本内容给浏览器,如果要影响浏览器 php 是通过返回 js 代码来的
    Mitt
        32
    Mitt  
       Jun 11, 2017 via iPhone
    现在就是搞不清楚你是想在客户端实现还是服务端实现 客户端那就 php 输出 js 操作 服务端那就自己找浏览器引擎了 如果想实时操作客户端 那你可能想太多 反正你最终实现都是 js
    we3613040
        33
    we3613040  
       Jun 11, 2017
    不能,大哥,php 是后端,从后端到前端,页面展示以后,后端就不能在控制页面了
    wending
        34
    wending  
    OP
       Jun 11, 2017
    @Mitt
    @we3613040 好吧,谢谢各位的帮助
    meepo3927
        35
    meepo3927  
       Jun 12, 2017
    楼主需要的可能是 phantomjs
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3006 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 132ms · UTC 15:13 · PVG 23:13 · LAX 08:13 · JFK 11:13
    ♥ Do have faith in what you're doing.