该站点有多个与之关联的域。有必要减少 Bing PS 机器人对网站的访问(总体上)。
如何转换指令
limit_req_zone $binary_remote_addr zone=one:10m rate=100r/s;
这样限制不适用于ip,而是出现子字符串“bing”的user_agent?如果超过来自这些机器人的请求数,则发出代码 429 的错误:limit_req_status 429;
该站点有多个与之关联的域。有必要减少 Bing PS 机器人对网站的访问(总体上)。
如何转换指令
limit_req_zone $binary_remote_addr zone=one:10m rate=100r/s;
这样限制不适用于ip,而是出现子字符串“bing”的user_agent?如果超过来自这些机器人的请求数,则发出代码 429 的错误:limit_req_status 429;
有一个申请表:
<form name="search" action="/search" method="POST">
<input type="text" id="searchText" name="searchText">
<button id="submit" type="submit"></button>
</form>
输入字段中的单词由用户手动输入,并以空格分隔。
问题:如何(并且可能)使用 JS / JQuery 在鼠标单击时从文本字段中删除任何单词?
例如:输入中的文字是“米色衣柜”。用户点击单词“compartment”并将其移除,保留在文本框“closet beige”中。
也许应该使用其他一些构造?
有一个带有代码文本字段的表格,其中包含唯一值(产品代码)
CREATE TABLE t1 (
`id` INT(9) UNSIGNED NOT NULL AUTO_INCREMENT,
`code` MEDIUMTEXT NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
...
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `code` (`code`(64)) USING BTREE,
...
)
COLLATE='utf8mb4_general_ci' ENGINE=InnoDB;
如果你用引号搜索
SELECT * FROM t1 WHERE code = "123123";
,则返回一条记录,其值为代码字段“123123”。
如果您进行不带引号的搜索
SELECT * FROM t1 WHERE code = 123123;
它可以返回多条记录,例如在代码字段中有值
"123123"
"123123/34"
"123123/3452"
为什么会发生这种情况以及涉及哪些类型转换?
您需要转换以下行:
'------example-1--'
在
'example-1'
那些。从字符串的开头和结尾删除所有“-”(破折号)字符。
如何在 mySQL 存储过程中简洁地做到这一点?
有必要在目录/home
及其子目录中找到所有引用的符号链接,例如/home/admin/123.txt
.
我怎样才能做到这一点?
Ubuntu 18.04 服务器
不能正常工作
wget http://speedtest.ftp.otenet.gr/files/test100Mb.db
--2021-08-08 03:58:45-- http://speedtest.ftp.otenet.gr/files/test100Mb.db
Resolving speedtest.ftp.otenet.gr (speedtest.ftp.otenet.gr)...
failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘speedtest.ftp.otenet.gr’
其他球队的情况类似。我怀疑 wget 没有看到 netplan 中指定的 DNS。网络计划:
network:
version: 2
renderer: networkd
ethernets:
eno1:
addresses:
- 123.123.123.123/24
gateway4: 123.123.123.254
dhcp4: no
dhcp6: no
nameservers:
addresses: [8.8.8.8,8.8.4.4]
systemd-resolve --status 显示:
...
Link 2 (eno1)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 8.8.8.8
8.8.4.4
我删除了 /etc/resolv.conf 符号链接,将其设为文件,安装名称服务器 8.8.8.8,将文件设为只读,因为它在重新启动后不断更改为本地地址 - 它没有帮助。
设置狮身人面像。索引来源。我决定优化停用词列表,同时查看数据库中的常用词——即 按“出现”的降序输出我的 Sphinx 索引中的单词。
你需要得到类似列表“word_in_reduced_form”的东西:number of_occurrences。例子:
и: 1394783948
в: 3482575
дом: 23415
участок: 1241
синхрофазатрон: 1
怎么做?
有一段文字。有必要将其传递给 Sphinx,并以初始形式(词形还原)取回单词列表。理想情况下是一个单词列表,其中包含每个单词的出现次数(初始形式)。
如何实施?
这里有张桌子
CREATE TABLE `table1` (
...
`prm` TEXT NULL DEFAULT NULL,
`size` TEXT NULL DEFAULT NULL,
`gender` TEXT NULL DEFAULT NULL,
`color` TEXT NULL DEFAULT NULL,
...
) ENGINE=InnoDB;
prm 字段包含以下文本数据:
Размер:XL|Цвет:Белый|Пол:female
Размер:M|Цвет:Черный|Пол:male
Размер:L|Пол:female
...
需要将从prm字段中“拉取”的对应值输入到size、gender、color文本字段中。结果,结果应该是这样的:
size|gender|color
XL|Белый|female
M|Черный|male
L|NULL|female
这里值得澄清的是,param 字段不一定包含所有数据(例如,与最后一个条目一样)。
如何更优雅地解决这个问题?到目前为止,只想到了带有一堆嵌套 SUBSTRUNG 和 LOCATE 的繁琐 UPDATE 构造以及 @ 变量。
我不知所措。告诉我有什么问题。
我正在尝试正确更改 foreach 循环内关联数组的元素的值。
我设置了数组的初始值并显示在屏幕上:
$arr=array(1,2);
print_r($arr);
结果:
Array
(
[0] => 1
[1] => 2
)
然后在循环中我将数组元素设置为新值。我使用了“&”符号,以便在循环内可以更改这些值\u200b\u200b:
foreach ($arr as $k => &$v) $v = $k*2;
检查:
print_r($arr);
我得到了我的预期:
Array
(
[0] => 0
[1] => 2
)
但后来我不知道发生了什么。两个选项(更改行的顺序):
1)第一个选项:
foreach ($arr as $k => &$v) echo " [$k] => $v".PHP_EOL;
foreach ($arr as $k => $v) echo " [$k] => $v".PHP_EOL;
结果:
[0] => 0
[1] => 2
[0] => 0
[1] => 0
使用“&”的第一个循环输出我需要的内容。第二个循环输出零。为什么?
2)第二个选项(而不是第一个),更奇怪(我们只改变循环的顺序):
foreach($arr as $k=>$v) echo " [$k] => $v".PHP_EOL;
foreach($arr as $k=>&$v) echo " [$k] => $v".PHP_EOL;
我们得到:
[0] => 0
[1] => 0
[0] => 0
[1] => 0
哦哦...
& 用作指向变量的指针,以便能够不使用数组的副本,而是使用 foreach 循环中元素的真实值,这一事实是可以理解的。不清楚为什么 print_r 输出与 foreach 循环中的输出不同。
为什么当我交换两个字符串时 foreach 输出不同。看来我没有在输出中使用赋值操作...
PS PHP 版本 7.0.33-0
语言 VARCHAR(2) 字段包含双文字语言缩写。
我正在尝试用德语显示所有记录:
SELECT * FROM table1 WHERE MATCH(`language`) AGAINST("de");
出于某种原因,这个表达式返回一个空集是因为值“de”,尽管它在保留字列表中没有找到“de”。
我在 mySQL 设置中设置了 ft_min_word_len=1。对于其他“语言”,我没有发现问题。
为什么会这样?
碰巧服务器下降(无论出于何种原因)。您并不总是在电脑前,也没有机会及时注意到它。
也许有一些工具可以对停机站点进行额外通知,例如 SMS 通知?或者其他“离线”的东西。
需要以 unixtimestamp 秒为单位获取当前日期的午夜时间(例如 12/18/2019 0-00)。如何让它在 PHP 中更漂亮?
如何检查cookie中的值是否为整数?
ST cookie 包含值 1572899812。我正在尝试这样:
if (is_int(1572899812)) echo 111;
if (is_int($_COOKIE['ST'])) echo 222;
在输出中我只得到 111。
是否可以在某些 apache 或 nginx 日志中记录用户请求(域 + REQUEST_URI),例如,服务器响应需要超过 3 秒?
让我解释一下:浏览器中的用户类型
site.ru/takoi-to-uri
通过 nginx 的请求转到 apache。Apache 运行 php 脚本来执行,其中包含大量的 include-s。在执行完所有脚本(即服务器形成响应)后,apache 将响应返回给用户。
因此,您需要记录服务器工作超过 3 秒的所有请求 (site.ru/takoi-to-uri)。
是否可以为 apache/nginx 执行此操作?
服务器上有很多网站和很多php脚本。因此,在 php 级别进行日志记录是有问题的。任务是跟踪“无效”的工作站点和其中的 php 脚本。
网站根目录下的文件.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^.*.txt$ [NC]
RewriteRule .* - [L,R=404]
在这里,任何文件请求都会返回 404 错误txt
。您需要更改正则表达式:
^.*.txt$
以便它匹配.txt
除robots.txt
.