我已经开始调试我的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时这不是一项小任务).
我有一个文本块(任意长度),每当出现时,一个特定的单词以黄色突出显示.我想只显示400字的文本块,但我想显示具有最突出显示的单词的块.
有谁知道这个好算法?
我有每个突出显示的单词的字符位置,所以算法需要找到不均匀间隔整数的最密集的簇?
我们有多个负载均衡的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) 我正在使用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仓库中有一个例子?我敢肯定它一定是常见的需求吗?
我们在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释放锁?
我应该如何优化代码以便更好地扩展?
有些事情我认为我可能会尝试:
我想要一个命令行函数,我可以在任何文件上运行以将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中的开箱即用.
我正在尝试使用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) 在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 …