我想创建一个php restful api-centric web应用程序/网站,其中我有从我的前端代码调用的data/api.除了每次加载页面时都进行HTTP/curl请求调用,我还可以使用像slim这样的框架来进行内部API调用?
我不确定是否可以在我的前端代码中包含api以供内部使用,并且仍然可以将它分开.
我的想法是这样的:
"example.com/api/story/todays-weather/"
pulls in the json formatted story with a http request with curl or Ajax
Run Code Online (Sandbox Code Playgroud)
但我可以这样做:
require("/api/internal.php");
$uri = "/story/todays-weather/";
$call = api::getStory($uri);
$result = json_decode($call);
.....
Run Code Online (Sandbox Code Playgroud)
我是朝着正确的方向前进还是离开了?
api和前端代码在同一个云盒(亚马逊E2/LAMP)上,我正在计划使用memcached为api.
最近我一直在将ARIA实现到Web应用程序中,我发现这个问题在改进导航部分方面非常有用.
在所有模块中实现此功能后,我发现了此HTML验证错误:
此时
aria-selected元素a上不允许属性.
看看ARIA规范,我看到它aria-selected仅用于角色gridcell,选项,行和制表符.就我而言,链接的作用是menuitem.
这是HTML代码的代表性示例:
<nav role=navigation>
<ul role=menubar>
<li role=presentation><a href='page1.php' role=menuitem>Page 1</a></li>
<li role=presentation><a href='page2.php' role=menuitem>Page 2</a></li>
<li role=presentation><a href='page3.php' role=menuitem aria-selected=true>Page 3</a></li>
<li role=presentation><a href='page4.php' role=menuitem>Page 4</a></li>
</ul>
</nav>
Run Code Online (Sandbox Code Playgroud)
如您所见,这是在"第3页"上进行的.
在这里使用的ARIA角色是什么?
我已经看过这两个问题了:
但是它们都使用聚合函数MAX来获得最高值或填充值,这对我的情况不起作用.
出于这个问题的目的,我简化了我的情况.这是我目前的数据:

我想获得每条路线的运营商名称,但是关于旅行方向(即订购或"偏好"值).这是我的伪代码:
if(`direction` = 'west' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'north' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'south' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'east' AND `operatorName` != '') then select `operatorName`
Run Code Online (Sandbox Code Playgroud)
我当前的SQL查询是:
SELECT route, operatorName
FROM test
GROUP BY route
Run Code Online (Sandbox Code Playgroud)
这给了我分组,但我的目的是错误的运算符:
route | operatorName
--------------------
95 | James
96 | Mark
97 | Justin
Run Code Online (Sandbox Code Playgroud)
我尝试过应用一个ORDER BY条款但GROUP BY …
我需要替换键:值对周围的方括号,类似于以下内容.任何帮助深表感谢!
'properties'中的数据如下所示:
name: property1
value: [12345667:97764458]
**code**
SELECT p.name, regexp_replace(p.value,'[','') AS value
FROM properties p
Run Code Online (Sandbox Code Playgroud)
解决:修改后的代码
SELECT p.name, regexp_replace(p.value,'\\[|\\]','') AS value
FROM properties p;
Run Code Online (Sandbox Code Playgroud) 我收到这个错误几个小时..我正在使用Play 2.2.0和Elasticsearch 0.90.7!
谁能帮我?
play.api.Application$$anon$1: Execution exception[[NoNodeAvailableException: No node available]]
at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.1.jar:2.2.1]
at play.api.DefaultApplication.handleError(Application.scala:399) ~[play_2.10-2.2.1.jar:2.2.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
at org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:256) ~[elasticsearch-0.90.7.jar:na]
at org.elasticsearch.action.TransportActionNodeProxy$1.handleException(TransportActionNodeProxy.java:89) ~[elasticsearch-0.90.7.jar:na]
at org.elasticsearch.transport.TransportService$Adapter$2$1.run(TransportService.java:316) ~[elasticsearch-0.90.7.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
Run Code Online (Sandbox Code Playgroud) 首先,我完全了解SQL注入漏洞,我正在将PDO用于我在PHP中开发的新应用程序.
简而言之,我正在为之工作的组织无法承担任何人力资源,无法将所有人力资源转换为PDO以用于我正在进行的相当大的应用程序,所以我坚持使用mysql_*函数与此同时.
无论如何,我想知道使用数据验证函数来"清理" 插值查询中使用的数字参数是否安全.我们确实mysql_real_escape_string()用于字符串(是的,我也知道那里的限制).这是一个例子:
public function foo($id) {
$sql = "SELECT * FROM items WHERE item_id = $id";
$this->query($sql); // call mysql_query and does things with result
}
Run Code Online (Sandbox Code Playgroud)
$id通过HTTP GET来识别用户提供的值,所以很明显这段代码很容易受到攻击.如果我这样做会好的吗?
public function foo($id) {
if (!ctype_digit($id)) {
throw new \InvalidArgumentException("ID must be numeric");
}
$sql = "SELECT * FROM items WHERE item_id = $id";
$this->query($sql); // call mysql_query and does things with result
}
Run Code Online (Sandbox Code Playgroud)
我知道,ctype_digit与检查正则表达式相同\d+.
(还有 …
在我测试的所有浏览器(IE,Firefox,Chrome,Safari,Opera,Yandex)中,window.navigator.appCodeName返回"Mozilla".我知道网络浏览器"劫持"用户代理以欺骗页面的历史,认为它们与所有其他浏览器兼容,而且我满足于appCodeName只是作为该主体的扩展,但是,我读了标准,并且事实证明,标准本身说这将是硬编码的价值"Mozilla".所以这些浏览器实际上都遵循这些标准.
为什么这个价值存在?我认为它留作将来使用,但计划是什么?
这个问题并没有真正解释它,因为它所说的只是因为浏览器劫持了它,我已经理解了,但我更想知道过去或未来的用途是什么.
我的应用程序中的大多数响应要么是视图,要么是 JSON。我不知道如何将它们放入ResponseInterface在PSR-7中实现的对象中。
这是我目前所做的:
// Views
header('Content-Type: text/html; charset=utf-8');
header('Content-Language: en-CA');
echo $twig->render('foo.html.twig', array(
'param' => 'value'
/* ... */
));
// JSON
header('Content-Type: application/json; charset=utf-8');
echo json_encode($foo);
Run Code Online (Sandbox Code Playgroud)
这是我试图用 PSR-7 做的事情:
// Views
$response = new Http\Response(200, array(
'Content-Type' => 'text/html; charset=utf-8',
'Content-Language' => 'en-CA'
));
// what to do here to put the Twig output in the response??
foreach ($response->getHeaders() as $k => $values) {
foreach ($values as $v) {
header(sprintf('%s: %s', $k, $v), false);
} …Run Code Online (Sandbox Code Playgroud) 我目前正在清理现有的代码库,其中一个方面涉及使用 PHPCS。这是我目前的phpcs.xml文件:
<?xml version='1.0'?>
<ruleset name='MyApplication'>
<arg name='encoding' value='utf-8'/>
<arg name='extensions' value='php'/>
<arg name='warning-severity' value='0'/>
<arg name='colors'/>
<arg value='p'/>
<exclude-pattern>vendor/*</exclude-pattern>
<exclude-pattern>node_modules/*</exclude-pattern>
<rule ref='PSR1'></rule>
</ruleset>
Run Code Online (Sandbox Code Playgroud)
我想修改它,以便将 PSR-2 应用于某些目录(例如foo/和bar/),而其余目录则根据 PSR-1 进行检查。
我<exclude-pattern>在手册中找到了可以作为元素的子元素放置的选项,<rule>但我需要相反的选项。
我需要使 google recapcha 响应,而不是仅使用宽度 100% 的变换比例,而使用其他比例但不使用变换比例。我正在搜索许多其他网站,但其中许多仅使用变换比例。
这是一张图片。
