小编Tom*_*Tom的帖子

MySQL排序规则类型是否需要匹配PHP页面字符集类型?

我已经开始调试我的RSS提要,因为它有一些奇怪的字符(即缺少字符字形).我从两个优秀的初学者资源开始:

我认为我们的RSS源存在问题的原因是因为用户将MS Word文档复制并粘贴到网站上的textarea中,而我们的PHP页面使用的是"iso-8859-1"字符集,这与特殊的"Windows-1252"不兼容MS Word使用的项目符号和智能引号等编码.

所以我希望能解决这个问题,我需要做的就是在获取/提供用户输入的页面中开始使用"utf-8".即在HEAD部分中设置以下内容:

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

我提出这个问题的真正原因是因为我存储用户输入的数据库字段是" latin1_swedish_ci",我想知道我是否需要将它们转换为" utf8_general_ci"?MySQL真的不关心charset吗?它只看到一堆字节,如果我将Unicode放入一个整理为拉丁语的字段中,它仍然会以Unicode的形式返回?更改字段会很烦人,因为该字段是FULLTEXT索引的一部分,其他字段也需要更改其排序,这意味着删除索引并重建它(当涉及大量TEXT时这不是一项小任务).

php mysql rss collation character-encoding

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

查找文本块中特定单词的最大群集

我有一个文本块(任意长度),每当出现时,一个特定的单词以黄色突出显示.我想只显示400字的文本块,但我想显示具有最突出显示的单词的块.

有谁知道这个好算法?

我有每个突出显示的单词的字符位置,所以算法需要找到不均匀间隔整数的最密集的簇?

string algorithm text

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

PHP $ _SERVER ['SERVER_ADDR']变量始终返回127.0.0.1

我们有多个负载均衡的webserver机器运行相同的PHP webapp(LAMP),我想在每个服务器上运行稍微不同的代码(用于测试目的).我希望使用$_SERVER['SERVER_ADDR']超级全局来做这样的事情:

if ($_SERVER['SERVER_ADDR'] == 'XXX.XXX.XXX.XXX') {
  echo "Do one thing";
} elseif ($_SERVER['SERVER_ADDR'] == 'YYY.YYY.YYY.YYY') {
  echo "Do something else";
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用,因为两台机器都设置$_SERVER['SERVER_ADDR']为' 127.0.0.1 '.如何配置它们以便$_SERVER['SERVER_ADDR']设置为其公共IP地址?

我猜这个问题可能与某些事情有关,/etc/hosts所以对于参考,它目前看起来像这样:

127.0.0.1       localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
XXX.XX.XX.XX    blahblah
Run Code Online (Sandbox Code Playgroud)

更新中...

哎呀!我忽略了在Web服务器前面考虑nginx反向代理.由于nginx conf中的以下行,所有到这些Web服务器的流量都来自nginx:

location / {
    root                  /var/www/staging/current;
    proxy_pass            http://localhost:8880;
}
Run Code Online (Sandbox Code Playgroud)

php linux lamp superglobals server-farm

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

如何在我的git项目中包含外部svn存储库?

我正在使用git作为项目的修订控制软件.我的项目需要使用第三方代码库,它使用SVN作为其修订控制软件.(在这种情况下,第三方代码是一个名为Yii的PHP框架,而不是它与问题非常相关).

有没有办法在git中设置外部依赖,可以帮助从外部SVN存储库中提取代码并使其保持最新?

如果我的项目使用的是SVN,那么设置起来会很简单,因为我会这样做:

> svn propset svn:externals yii-1.1.6 https://yii.googlecode.com/svn/tags/1.1.6/framework
Run Code Online (Sandbox Code Playgroud)

...然后,每当我做一个svn checkout(或svn update)时,我会将yii代码库吸收到一个名为" yii-1.1.6" 的本地文件夹中.我可以在git中做类似的事情吗?有没有人在我可以复制的公共github仓库中有一个例子?我敢肯定它一定是常见的需求吗?

svn git svn-externals

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

如何以缩放的方式执行多个MySQL INSERT(PHP)

我们在PHP代码中有一个循环,它将行插入表中.例如:

while ($info = mysql_fetch_assoc($someQuery)) {
    mysql_query("INSERT INTO X (i,j) VALUES ($info['ii'],$info['jj'])");
}
Run Code Online (Sandbox Code Playgroud)

几个月前这很好,因为循环只会迭代几次.但是,由于我们的网站获得更多流量,此循环现在有时会迭代1000次或更多次.该表有一些开销(4,305 KiB),这个表中的SELECT出现在MySQL慢速日志中,可能是因为他们不得不等待一长串INSERT释放锁?

我应该如何优化代码以便更好地扩展?

有些事情我认为我可能会尝试:

  • INSERT DELAYED - 需要深入研究.它有帮助吗?
  • 尝试在同一查询中插入多行.但是我应该设置什么限制?50,500,1000?

php mysql optimization scaling

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

如何在bash脚本中使用Perl正则表达式字符?

我想要一个命令行函数,我可以在任何文件上运行以将include("myinc.inc");PHP语句更改为include 'myfile.inc';我已经通过将以下内容添加到我的〜/ .bashrc文件开始:

function makestandard() {
    perl -p -i -e 's/include\("([\w\.]+)"\)/include '$1'/g' $*
}
Run Code Online (Sandbox Code Playgroud)

source ~/.bashrc;在命令行运行命令,如下所示:

$ makestandard myfile.php
Run Code Online (Sandbox Code Playgroud)

我修改了myfile.php但是没有捕获包含的文件名,包含的文件名被破坏为当前文件的名称.作为一个不知情的猜测,我认为bash $1变量干扰了$1perl regexp变量.

我怎样才能解决这个问题?


背景信息(无需阅读):我们已经开始使用PHP_CodeSniffer(phpcs)来嗅探PHP代码并报告任何不好的"气味".不幸的是,phpcs没有修复非标准代码,只报告它.因此,我想制作一个脚本来修复PHP代码的一些简单和常见的非标准元素.我计划makestandard用一堆perl馅饼填充我的bash函数.

Shell环境:Ubuntu 10.04中的开箱即用.

php regex bash shell perl

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

如何忽略来自 http 请求节点的 SSL 错误

我正在尝试使用node-red作为前端来与我正在构建的 REST API 进行交互。我的 API 使用 https,但在我的本地服务器上,证书设置不完美,当我尝试使用“http 请求”节点时,出现错误:

 UNABLE_TO_VERIFY_LEAF_SIGNATURE
Run Code Online (Sandbox Code Playgroud)

有没有办法将 node-red 配置为不那么严格并允许 SSL 协议错误并继续处理 http 请求?是否有人创建了自己的“http 请求”节点版本,该版本不像默认节点那么严格?

(在 Google Chome 浏览器中,我有一个绿色挂锁,所以 SSL 几乎是正确的,红色节点非常挑剔)


要运行 node-red,我使用 docker:

docker run -dp 1880:1880 -v ~/.node-red:/root/.node-red --name node-red cpswan/node-red
Run Code Online (Sandbox Code Playgroud)

这是我的节点红色项目源代码:

[{"id":"e246fcb9.1db9","type":"inject","name":"Trigger user/me","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"x":200,"y":140,"z":"e7bac913.184538","wires":[["f9d78108.06288"]]},{"id":"96b8b92c.694748","type":"http request","name":"user/me","method":"GET","ret":"obj","url":"https://local.supertasker.com/api/user/me","x":711,"y":141,"z":"e7bac913.184538","wires":[["5150419b.aeafc"]]},{"id":"5150419b.aeafc","type":"debug","name":"","active":true,"console":"false","complete":"false","x":906,"y":140,"z":"e7bac913.184538","wires":[]},{"id":"f9d78108.06288","type":"function","name":"Add 'Accept:application/json' header","func":"\nmsg.headers = {\n    'Accept':'application/json'\n};\n\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"valid":true,"x":464,"y":140,"z":"e7bac913.184538","wires":[["96b8b92c.694748"]]}]
Run Code Online (Sandbox Code Playgroud)

node-red

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

Makefile到base64编码kubernetes的秘密

在Kubernetes中,秘密资源是base64编码的.这是官方文档中的示例yaml文件:

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
data:
  USERNAME: bXktYXBwCg==
  PASSWORD: YV44KXlcNzw4QUF4YWEoeV54
Run Code Online (Sandbox Code Playgroud)

两个秘密数据的位置:用户名和密码是base64编码使用:

echo -n 'my-app' | base64
echo -n 'a^8)y\7<8AAxaa(y^x' | base64
Run Code Online (Sandbox Code Playgroud)

我想要的工作流程是使用我的秘密的yaml文件版本,并且Makefile可以生成base64编码版本.

这是我遇到困难之前的所在:

输入(my-secrets-naked.yaml):

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
data:
  USERNAME: my-app
  PASSWORD: a^8)y\7<8AAxaa(y^x
Run Code Online (Sandbox Code Playgroud)

Makefile:

base64:
    @echo "Computing base64 of secret values..."
    cat my-secrets-naked.yaml | bash base64_secrets.sh > my-secrets-base64.yaml
Run Code Online (Sandbox Code Playgroud)

base64_secrets.sh脚本:

sed -r 's/(\s+[A-Z]\S+:\s*)(.*)/echo "\1$(echo -n "\2" | base64 -w0 )"/e;s/  -//'
Run Code Online (Sandbox Code Playgroud)

命令: make …

bash makefile sed kubernetes

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