小编Nat*_*per的帖子

如果用户在AJAX请求结束之前退出浏览器或更改页面,会发生什么

我通过ajax调用php脚本来进行一些数据库维护.如果用户关闭页面,点击或点击链接,php脚本是否会完全执行?有办法吗?

也许如果php脚本调用exec()方法或类似的东西,这将反过来通过控制台调用脚本:

$ php /var/www/httpdocs/maintenance.php
Run Code Online (Sandbox Code Playgroud)

php ajax bash shell jquery

21
推荐指数
2
解决办法
6985
查看次数

php 未使用的导入会影响性能吗?

如果这个问题重复,请重定向我,因为我找不到专门针对 PHP 提出的相同问题。

我知道 import 语句对 Java 和 Python 的影响,但由于 PHP 的工作方式不同,如果我保留这样未使用的 import(use)语句有什么关系吗?

use DateTime;
Run Code Online (Sandbox Code Playgroud)

我之所以问而不是仅仅删除是因为我即将启动一个重构的网站,除非这对性能有很大影响,否则我宁愿将它们留在那里,而不是冒着破坏网站的风险。

php namespaces

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

使用NVidia GTX950M的FFMPEG hevc_nvenc"没有找到支持NVENC的设备"

在尝试这样的简单编码时,我收到错误"找不到NVENC功能的设备",甚至跳过音频以确保它不是音频问题:

ffmpeg.exe -i input.mp4 -c:v hevc_nvenc -an out.mp4
Run Code Online (Sandbox Code Playgroud)

我还尝试了更多细节,比如设置像素格式,预设,速率控制和格式.

在文档页面上:https: //trac.ffmpeg.org/wiki/HWAccelIntro 它说如果我们得到这个错误,我们应该检查像素格式.视频在这里有yuv420p,甚至指定格式会导致相同的错误.

我还检查了NVidia支持的卡,它说的是GeForce,但没有关于这些型号的详细信息:https: //developer.nvidia.com/video-encode-decode-gpu-support-matrix#Encoder

我尝试了h264_nvenc并且它工作正常,但问题是只有hevc_nvenc有没有人遇到过这个问题?

完整控制台输出:

[h264 @ 0000000002534560] Reinit context to 1280x544, pix_fmt: yuv420p
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: isom
    creation_time   : 2014-05-23T13:04:15.000000Z
  Duration: 01:54:03.95, start: 0.000000, bitrate: 3193 kb/s
    Stream #0:0(und): Video: h264 (High), 1 reference frame (avc1 / 0x31637661), yuv420p(left), 1280x544 [SAR 1:1 DAR 40:17], 2750 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc …
Run Code Online (Sandbox Code Playgroud)

ffmpeg h.265 hevc nvenc

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

与nginx结合的Docker不断显示欢迎页面

我是新来的码头工人,并试图与展示,最终一个完整的世界您好网页的基础上最重要的是最简单的搬运工,compose.yml LEMP堆栈,将有相同的配置为我的服务器。但是,大多数教程已过时,并且使用docker的方式太多了,我仅使用Docker compose v3仍然无法找到一种方法。我检查了一下文档,对于初学者来说也很令人困惑,在过去的5个小时里一直在努力使其正常工作,所以我想我应该问一下。

docker-compose.yml

version: '3'
services:
  web:
    image: bitnami/nginx:1.10.3-r0 #using this version as it's the same on my server
    volumes:
      - "./test.conf:/etc/nginx/sites-available/test.local"
      - "./test.conf:/etc/nginx/sites-enabled/test.local"
      - "./code:/var/www/html" #code contains only a basic index.html file
    ports:
      - "80:80"
Run Code Online (Sandbox Code Playgroud)

test.conf

server {
    listen 80;
    listen [::]:80;
    server_name test.local;

    index index.html; #Only a basic helloworld index.html file
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    root /var/www/html;
}
Run Code Online (Sandbox Code Playgroud)

我需要一个Dockerfile吗?教程似乎没有提到它是必需的。

注意:
尝试添加卷

- "./default.conf:/etc/nginx/conf.d/default.conf"
Run Code Online (Sandbox Code Playgroud)

但是没有任何变化,欢迎页面仍然加载,而使用nginx:latest时,我收到一个非常冗长的错误,其中包含以下短语:“未知:您是否尝试将目录挂载到文件上(反之亦然)?检查指定的主机路径存在,并且是预期的类型”。

有关docker-compose.yml的更新:

  • 如果没有该行 …

nginx docker docker-compose

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

2021 年,在浏览器中前端原始 TCP/UDP 套接字有什么办法吗?

我见过很多关于使用 JavaScript/Html5 在网络浏览器中使用原始 TCP/UDP 套接字的问题,但是它们都很旧,就像5 年前发布的那样。现在是 2021 年,我想知道是否有可能避免使用 WebSockets,而是使用原始 TCP/UDP 套接字,以便我的本地网页可以与本地 Python 套接字服务器通信。

我不介意它是否无法通过互联网访问,或者我是否需要扩展,因为它仅适用于家庭项目,其中我的 Raspberry Pi 零上的网页将与我的主计算机通信以通过其 Python 套接字服务器请求数据。

我知道 Chrome 应用程序在被删除之前有一个套接字 API,并且我看到了这篇关于 Chromium 开发人员想要添加套接字的文章,但未能找到任何有关它的真实信息。

有谁知道在浏览器中使用原始 TCP/UDP 套接字的方法吗?

javascript sockets raw-sockets websocket python-sockets

6
推荐指数
0
解决办法
2865
查看次数

有没有办法在CodeIgniter中指定"USE INDEX"或"FORCE INDEX"

是否可以在CodeIgniter中指定"USE INDEX"或"FORCE INDEX",而不是使用

$this->db->query()
Run Code Online (Sandbox Code Playgroud)

我的意思是,如果可以在ActiveRecord的一个方法中的某处插入"FORCE INDEX".

php mysql codeigniter

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

PHP静态方法在成员变量中使用命名空间调用

是不是可以在PHP中做这样的事情?我想在一个成员变量中有一个名称空间,并且总是能够调用该类的每个静态方法,就像我在下面所做的那样.

当然我的代码不起作用,但我只是想知道这是否可行,并且我接近解决方案,或者如果这完全不可能并且必须始终使用语法:

\Stripe\Stripe::setApiKey(..);
Run Code Online (Sandbox Code Playgroud)

类似的问题澄清

注意:我无法修改Stripe类,重要的是它保持不变,因为未来的开发人员必须更新Stripe API

简化代码:

class StripeLib
{
    var $stripe;

    public function __construct()
    {
        // Put the namespace in a member variable
        $this->stripe = '\\'.Stripe.'\\'.Stripe;
    }
}

$s = new StripeLib();

// Call the static setApiKey method of the Stripe class in the Stripe namespace
$s->stripe::setApiKey(STRIPE_PRIVATE_KEY);
Run Code Online (Sandbox Code Playgroud)

php namespaces

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

Android Studio在创建新活动时出现"IDE错误"

(见底部的更新)

由于Android Studio更新到v3.0,我无法创建新的Activity ..我收到此错误报告对话框显示2个错误.我尝试了一个不同的项目,尝试清理项目,重新启动计算机,重新启动计算机,卸载/重新安装Android Studio,尝试遵循Google的项目Gradle迁移视频,但没有任何变化,我不能再工作......任何想法?

我没有点击"禁用插件"来禁用Android支持,因为我不想打破我不知道的事情.

第一条错误消息的详情:

null
java.lang.NullPointerException
    at com.android.tools.idea.templates.TemplateManager$2.actionPerformed(TemplateManager.java:481)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:215)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:232)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.lambda$actionPerformed$0(ActionMenuItem.java:309)
    at com.intellij.openapi.wm.impl.FocusManagerImpl.runOnOwnContext(FocusManagerImpl.java:929)
    at com.intellij.openapi.wm.impl.IdeFocusManagerImpl.runOnOwnContext(IdeFocusManagerImpl.java:136)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem$ActionTransmitter.actionPerformed(ActionMenuItem.java:299)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.lambda$fireActionPerformed$0(ActionMenuItem.java:116)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:109)
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransaction(TransactionGuardImpl.java:118)
    at com.intellij.openapi.application.TransactionGuard.submitTransaction(TransactionGuard.java:122)
    at com.intellij.openapi.actionSystem.impl.ActionMenuItem.fireActionPerformed(ActionMenuItem.java:116)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.doClick(BegMenuItemUI.java:513)
    at com.intellij.ui.plaf.beg.BegMenuItemUI.access$300(BegMenuItemUI.java:45)
    at com.intellij.ui.plaf.beg.BegMenuItemUI$MyMouseInputHandler.mouseReleased(BegMenuItemUI.java:533)
    at java.awt.Component.processMouseEvent(Component.java:6541)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    at java.awt.Component.processEvent(Component.java:6306)
    at java.awt.Container.processEvent(Container.java:2237)
    at java.awt.Component.dispatchEventImpl(Component.java:4897)
    at java.awt.Container.dispatchEventImpl(Container.java:2295)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467)
    at java.awt.Container.dispatchEventImpl(Container.java:2281)
    at java.awt.Window.dispatchEventImpl(Window.java:2746)
    at java.awt.Component.dispatchEvent(Component.java:4719)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:764)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at …
Run Code Online (Sandbox Code Playgroud)

android-studio android-studio-3.0

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

使用 htaccess 的域特定机器人文件将 robots.txt 重写为 example.com.txt 或回退到 default.txt

我想拥有特定于域的 robots.txt,到目前为止这有效:

RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]
Run Code Online (Sandbox Code Playgroud)

但我想有一个后备,所以如果 domain.txt 文件不存在然后去 default.txt

这并没有真正解决,因为它会重定向所有不存在的文件名,而且我已经在不同的规则中有一个 !-f: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule robots/default.txt [L]

所以我需要: 1-catch robots.txt requests 2-Send to robots/domain.txt 如果它存在 3-Else 发送到 robots/default.txt

apache .htaccess mod-rewrite

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

RewriteRule 适用于 .htaccess 但不适用于 httpd.conf

我正在尝试重定向所有必须的网址/__//public/assets/让它在 .htaccess 中工作,但不能在 httpd.conf 中全局工作它应该做的是重写:

http://example.com/__/test.css

http://example.com/public/assets/test.css

到目前为止,我已经为 .htaccess 工作了:

RewriteRule ^(.*)/?__/(.*)$ $1/public/assets/$2 [L]
Run Code Online (Sandbox Code Playgroud)

(这可能写得不正确,但这是我设法使其发挥作用的唯一方法)。然而,如果我把它放在 httpd.conf 中,它根本不起作用。我试着调整它,尝试把它放进去<VirtualHost 127.0.0.1>,放进去<Directory "c:/DEV/wamp/www/">,但还是不行。现在已经在这上面浪费了 3 个小时的时间,并在 Stackoverflow/论坛上找到了很多例子,但奇怪的是它们都不适合我。

编辑: 这是我尝试过的两个块的示例。[R] 是验证规则是否有效并重定向:

<VirtualHost 127.0.0.1>
    DocumentRoot "c:/DEV/wamp/www/"
    <Directory "c:/DEV/wamp/www/">
        Allow From All
        RewriteEngine On
        RewriteRule ^/(.*)?__/(.*)$ /$1public/assets/$2 [R]
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

和这个:

<Directory "c:/DEV/wamp/www/">
    Allow From All
    RewriteEngine On
    RewriteRule ^/(.*)?__/(.*)$ /$1public/assets/$2 [R]
</Directory>
Run Code Online (Sandbox Code Playgroud)

EDIT2: 尝试从建议的答案中进行选择编辑,仍然无法在服务器上找到css文件。

<Directory "c:/DEV/wamp/www/">
    Allow From All
    RewriteEngine On
    RewriteRule ^__/(.*)$ public/assets/$1 [L]
</Directory>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess mod-rewrite httpd.conf

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