我正在尝试获取使用Zend Framework 1.11的整数数组中的行.
$this->dbSelect
->from($table_prefix . 'product_link')
->joinLeft($table_prefix . 'product_link_name', $table_prefix . 'product_link.product_link_name_ref_id = ' . $table_prefix . 'product_link_name.product_link_name_id')
->where('product_ref_id IN (?)', implode(', ', $product_ids));
Run Code Online (Sandbox Code Playgroud)
当我使用__toString()方法时$this->dbSelect,我得到了
SELECT `phc_distrib_product_link`.*,
`phc_distrib_product_link_name`.*
FROM `phc_distrib_product_link`
LEFT JOIN `phc_distrib_product_link_name`
ON phc_distrib_product_link.product_link_name_ref_id = phc_distrib_product_link_name.product_link_name_id
WHERE (product_ref_id IN ('10, 12'))
Run Code Online (Sandbox Code Playgroud)
这只返回满足product_ref_id = 10条件的行.如何获得IN子句
product_ref_id IN ('10', '12')
Run Code Online (Sandbox Code Playgroud)
要么
product_ref_id IN (10, 12)
Run Code Online (Sandbox Code Playgroud)
使用Zend DB预处理语句,以便我可以获取产品id数组中包含的所有行?
阅读 angular-cli 文档和有关堆栈溢出的一些讨论,我了解到,当使用生成的组件完成项目时,默认情况下内联样式将全部包含在构建中,但是当我构建项目时,似乎没有一个包括内联样式。
例如这个组件:
import { MenubarService } from '../../services/menubar-service/menubar.service'
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css'],
providers:[LoginService]
})
export class LoginComponent implements OnInit {
constructor(.......
Run Code Online (Sandbox Code Playgroud)
最终项目中不存在 login.component.css 文件。我注意到它有两个原因:
首先,我的应用程序的样式显然与我使用“ngserve”命令时的样式不同,其次是因为使用浏览器检查器元素,我找不到 css 的痕迹。
这是我的 angular-cli 的配置文件
{
"project": {
"version": "1.0.0-beta.18",
"name": "genioimprese"
},
"apps": [
{
"root": "src",
"outDir": "dist",
"assets": [
"images",
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"test": "test.ts",
"tsconfig": "tsconfig.json",
"prefix": "app",
"mobile": false,
"styles": [
"styles.css",
"paper.css"
],
"scripts": [],
"environments": {
"source": "environments/environment.ts", …Run Code Online (Sandbox Code Playgroud) 我的意思是这样的:
$arr = ["1", "2", "3"];
$one;
$two;
$three;
$new = [$one, $two, $three] = $arr;
Run Code Online (Sandbox Code Playgroud)
结果我应该得到:
$one = 1;
$two = 2;
$three = 3;
Run Code Online (Sandbox Code Playgroud)
我试过,它适用于PHP 7.3.2:
var_dump($one); // returns 1
Run Code Online (Sandbox Code Playgroud) 在我的代码中,我有一个带有属性的类,偶尔需要运行异步代码。有时我需要从异步函数访问属性,有时从同步函数访问属性 - 这就是为什么我不希望我的属性是异步的。此外,我的印象是异步属性通常是一种代码异味。如果我错了纠正我。
我在从同步属性执行异步方法并阻止进一步执行直到异步方法完成时遇到问题。
这是一个示例代码:
import asyncio
async def main():
print('entering main')
synchronous_property()
print('exiting main')
def synchronous_property():
print('entering synchronous_property')
loop = asyncio.get_event_loop()
try:
# this will raise an exception, so I catch it and ignore
loop.run_until_complete(asynchronous())
except RuntimeError:
pass
print('exiting synchronous_property')
async def asynchronous():
print('entering asynchronous')
print('exiting asynchronous')
asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)
它的输出:
entering main
entering synchronous_property
exiting synchronous_property
exiting main
entering asynchronous
exiting asynchronous
Run Code Online (Sandbox Code Playgroud)
首先,RuntimeError捕获似乎是错误的,但如果我不这样做,我会得到RuntimeError: This event loop is already running例外。
其次,asynchronous()函数最后执行,同步完成后。我想通过异步方法对数据集进行一些处理,所以我需要等待它完成。如果我await asyncio.sleep(0)在调用之后添加synchronous_property() …
我正在使用Magento 1.5.1.0版.我添加了一个属性,并在"属性"选项卡中选择了以下选项:
Catalog input type for store owner: dropdown
Unique value: no
Values required: no
Run Code Online (Sandbox Code Playgroud)
然后我转到Manage Label/Options选项卡并添加了3个不同的选项,选择第一个选项作为默认选项.我将它添加到属性集中,当我输入产品时,我会看到下拉列表,但前面有一个空的选项值:
<select>
<option selected="selected"></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
保存产品时,空选项仍保持选中状态.如何删除该空选项并使选项1成为我所有现有产品的默认选项,而无需使用JS或编辑任何文件?
我对curlinit()和close()函数感到困惑。我想知道在以下每种情况下何时应该关闭curl 句柄:
1. 使用单个句柄获取“单个”URL,并具有不同的选项。例如:
$curl=curl_init('google.com');
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)
现在我想将 FOLLOWLOCATION 设置为 false。我应该做curl_close($curl),并从头开始做所有事情,或者只是设置选项并再次执行它,如下所示:
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,false);
curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)
2.使用单个句柄获取“多个”URL。例如:
$curl = curl_init('google.com');
curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)
现在我想要访问 stackoverflow.com。我应该关闭句柄并从头开始,还是可以设置另一个 URL 而不关闭句柄。像这样:
$curl = curl_init('stackoverflow.com');
curl_exec($curl);
Run Code Online (Sandbox Code Playgroud)
3.使用多个句柄获取多个URL。这是我的代码:
$CONNECTIONS=10;
$urls=fopen('urls.txt','r');
while(!feof($urls))
{
$curl_array=array();
$curl=curl_multi_init();
for($i=0;$i<$CONNECTIONS&&!feof($urls);$i++)
//create 10 connections unless we have reached end of file
{
$url=fgets($urls); //get next url from file
$curl_array[$i]=curl_init($url);
curl_multi_add_handle($curl,$curl_array[$i]);
}
$running=NULL;
do
{
curl_multi_exec($curl,$running);
}while($running>0);
for($i=0;$i<$CONNECTIONS;$i++)
{
$response=curl_multi_getcontent($curl_array[$i]);
curl_multi_remove_handle($curl,$curl_array[$i]);
curl_close(($curl_array[$i]));
}
curl_multi_close($curl);
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的:获取每个单个句柄的内容后,我将从多句柄中删除该句柄,关闭单个句柄,然后在 for 循环后关闭多句柄。这种做法是否正确,还是我过度闭合了手柄?
谢谢
我正在使用PHP-FastCGI在nginx 1.4.1上运行服务器.目前我进行了设置,以便从我的URL中删除尾部斜杠并发出301重定向.但是,当我访问存在的目录时,我被迫进入重定向循环.我当前的文档根看起来像这样:
- index.php (app)
- webgrind
- index.php
- static
- css
Run Code Online (Sandbox Code Playgroud)
目前我无法访问example.com/webgrind或任何其他目录.我的访问日志重复读取类似于:
GET /webgrind/ HTTP/1.1" 301 178 "-"
GET /webgrind HTTP/1.1" 301 178 "-"
Run Code Online (Sandbox Code Playgroud)
这是我的nginx.conf中的服务器块:
server {
listen 80;
server_name example.com;
location / {
try_files $uri $uri/ /index.php?$args;
root /var/www/example/public;
index index.php index.html index.htm;
}
rewrite ^/(.*)/$ /$1 permanent;
location = /favicon.ico {
access_log off;
log_not_found off;
}
location ~ \.php$ {
try_files $uri $uri/ /index.php?$args;
root /var/www/example/public;
index index.php index.html index.htm;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME …Run Code Online (Sandbox Code Playgroud) 脚本文件
$filename = realpath(sprintf("%s/%s", getcwd(), $argv[1]));
var_dump($filename);
Run Code Online (Sandbox Code Playgroud)
让我们尝试一些事情
[/foo/bar/bof] $ php script.php ../foo.txt
string(16) "/foo/bar/foo.txt"
[/foo/bar/bof] $ php script.php ../nonexistent.txt
bool(false)
Run Code Online (Sandbox Code Playgroud)
该死!realpath返回 false 因为文件不存在。
我想看到的../nonexistent.txt是
string(24) "/foo/bar/nonexistent.txt"
Run Code Online (Sandbox Code Playgroud)
如何获取 PHP 中任何相对路径的规范化路径?
注意:我看到了一些有关解析符号链接路径的问题。这些问题的答案不适用于我的问题。
当我尝试点击我的测试网页时,出现503错误.
在浏览器选项卡中,与我的页面关联的图标.但是,当我使用Chrome开发者工具时,我看不出该图像是如何显示的.
我在点击页面之前清除了缓存.此外,我查看了HTML和网络选项卡,但没有看到如何检索文件.
我知道this在事件处理函数中将值更改为接收事件的元素非常有用.但是,我想让我的函数始终在我的应用程序上下文中调用,而不是在元素上下文中调用.这样,我可以将它们用作事件处理程序以及其他方式,例如setTimeout调用.
所以,这样的代码:
window.app = (function () {
var that = {
millerTime: function () {},
changeEl: function (el) {
el = el || this;
// rest of code...
that.millerTime();
}
};
return that;
}());
Run Code Online (Sandbox Code Playgroud)
可能就像这样:
window.app = (function () {
return {
millerTime: function () {},
changeEl: function (el) {
// rest of code...
this.millerTime();
}
};
}());
Run Code Online (Sandbox Code Playgroud)
第一种方式让我感到困惑.是否有一个很好的简单方法将接收事件的元素作为第一个参数(最好是jQuery包装元素)传递给我的事件处理函数并在上下文中调用app?假设我使用jQuery绑定了一堆事件处理程序.我不想一直包含匿名函数:
$('body').on('click', function (event) {
app.changeEl.call(app, $(this), event); // would be nice to get event too …Run Code Online (Sandbox Code Playgroud) php ×3
angular ×1
angular-cli ×1
asynchronous ×1
attributes ×1
bind ×1
curl ×1
default ×1
escaping ×1
http ×1
javascript ×1
jquery ×1
magento ×1
mysql ×1
nginx ×1
option ×1
path ×1
python-3.x ×1
realpath ×1
redirect ×1
this ×1