Firefox 似乎预取在元标记中设置的任何内容,如下所示:
<link rel="next" href="http://domain.com/page/2">
Run Code Online (Sandbox Code Playgroud)
可以在此处阅读有关此内容的更多信息:http : //developer.mozilla.org/en-US/docs/Link_prefetching_FAQ
现在在我的网站上,当有多个页面用于评论时,我一直在使用 rel="next" 和 rel="previous",因为我认为这是很好的标记,可以用来帮助某些读者或搜索引擎机器人。
然而,我也一直试图跟踪用户阅读的最后一条评论是什么,但这并没有奏效(当你花了几个小时做一些简单的事情时,这是愚蠢的时间之一)。
基本上,例如,当用户读取第 2 页(共 3 页)时,我更新数据库以表示他们已读取第 2 页,但未读取第 3 页。但是,由于第 3 页被预取,该页的代码会运行,并且会触发 SQL 更新即使用户从未真正阅读过第 3 页,该页面也是如此。
所以我真的有几个问题:
我正在尝试创建一个自定义laravel(5.2)迁移命令,该命令基本上与migrate:status它相同,只是它只列出了挂起的迁移而不是所有迁移.
要做到这一点,我只是简单地将其复制migrate:status到我的app/console目录中的另一个类中,并调整代码以满足我的需要.但是每当我尝试运行它时,我都会收到错误:
[Illuminate\Contracts\Container\BindingResolutionException]构建[App\Console\Commands\PendingMigrations,Illuminate\Database\Migrations\Migrator]时,目标[Illuminate\Database\Migrations\MigrationRepositoryInterface]无法实例化.
类本身和fire()方法的内容似乎并不重要,因为它没有那么远,它在__construct()方法中失败了.
<?php namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Database\Migrations\Migrator;
class PendingMigrations extends Command
{
/**
* The console command name.
*
* @var string
*/
protected $name = 'migrate:pending';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Shows a list of pending migrations';
/**
* The migrator instance.
*
* @var \Illuminate\Database\Migrations\Migrator
*/
protected $migrator;
/**
* Create a new migration rollback command instance. …Run Code Online (Sandbox Code Playgroud) (第一次海报,谷歌的长期访客)
我正在尝试提取一些方括号的内容,但是我有一点麻烦.我已经让它适用于圆括号,如下所示,但我看不出它应该如何修改以适用于方括号.我本以为在这个例子中替换正方形的圆形反之亦然,但显然不行.
它需要忽略括号内的括号.所以它不会返回(11)但会返回(10(11)12).
$preg = '#\(((?>[^()]+)|(?R))*\)#x';
$str = '123(456)(789)(10(11)12)';
if(preg_match_all($preg, $str, $matches)) {
$matches = $matches[0];
} else {
$matches = array();
}
echo '<pre>'.print_r($matches,true).'</pre>';
This returns:
Array (
[0] => (456)
[1] => (789)
[2] => (10(11)12)
)
Run Code Online (Sandbox Code Playgroud)
哪个是完美的.但是,如何才能使用方括号代替字符串,例如:
$str = '123[456][789][10[11]12]';
Run Code Online (Sandbox Code Playgroud) 编辑:对于在以后发现这种情况的任何人,CI会在这些情况下使用大量内存,因为它会为每一行创建一个对象(使用result_array()似乎没有好多了),所以最好的选择就是使用PHP内置的mysql函数.如果您正在使用MYSQLI,则可以访问连接链接,如下所示:
$this->db->conn_id
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过命令行运行脚本(测试什么是cronjob),脚本的作用是无关紧要的,因为它在第一次选择时失败并且没有进一步.
我正在使用Codeigniter 2.0.3.
我的表看起来像这样:
CREATE TABLE IF NOT EXISTS `graphic_files` (
`graphic_file_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`graphic_file_style_id` tinyint(2) unsigned NOT NULL,
`graphic_file_fm_id` bigint(20) unsigned DEFAULT NULL,
`graphic_file_config_line` varchar(255) NOT NULL,
`graphic_file_config_line_hash` varchar(32) NOT NULL,
`graphic_file_location` varchar(255) DEFAULT NULL,
`graphic_file_pack_id` int(10) unsigned NOT NULL,
`graphic_file_enabled` tinyint(1) NOT NULL,
`graphic_file_alternative` tinyint(1) NOT NULL,
`graphic_file_version` decimal(4,2) NOT NULL,
`graphic_file_time_added` int(11) unsigned NOT NULL,
`graphic_file_time_modified` int(11) unsigned NOT NULL,
`graphic_file_size` int(11) unsigned NOT NULL,
PRIMARY KEY (`graphic_file_id`),
KEY `graphic_file_style_id` (`graphic_file_style_id`),
KEY …Run Code Online (Sandbox Code Playgroud) 我正在尝试将数据库转换为使用 utf8mb4 而不是 utf8。除了一张桌子之外,一切都很顺利:
\nCREATE TABLE `search_terms` (\n `id` int(11) NOT NULL AUTO_INCREMENT,\n `search_term` varchar(128) NOT NULL,\n `time_added` timestamp NULL DEFAULT NULL,\n `count` int(10) unsigned NOT NULL DEFAULT '0',\n PRIMARY KEY (`id`),\n UNIQUE KEY `search_term` (`search_term`),\n KEY `search_term_count` (`count`)\n) ENGINE=InnoDB AUTO_INCREMENT=198981 DEFAULT CHARSET=utf8;\nRun Code Online (Sandbox Code Playgroud)\n基本上,它所做的就是每次有人在表单中搜索某些内容时保存一个条目,以便我们可以跟踪搜索次数,非常简单。
\n有一个唯一索引,search_term因为我们希望每个搜索词只有一行,而不是增加计数值。
但是,当转换为 utf8mb4 时,我收到重复输入错误。这是我正在运行的命令:
\nALTER TABLE `search_terms` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nRun Code Online (Sandbox Code Playgroud)\n在数据库中我可以看到类似这样的各种示例:
\n\n\n\xef\xbd\x86\xef\xbd\x8d\xef\xbc\x92\xef\xbc\x90\xef\xbc\x91\xef\xbc\x92
\n\xef\xbd\x86\xef\xbd\x8d2012
\n调频2012
\n
在当前的 utf8 字符集中,这些都被视为唯一并存在于数据库中,而不会出现search_term …
我正在尝试找到一种方法来搜索 JSON 对象并获取特定的键,但搜索另一个键。
这是一个示例架构:
CREATE TABLE `fields` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`label` varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL,
`options` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
INSERT INTO `fields` (label, options) VALUES
(
'My Field',
'[{"text": "Grass", "value": "1"}, {"text": "Synthetic (New Type - Soft)", "value": "2"}, {"text": "Synthetic (Old Type - Hard)", "value": "3"}, {"text": "Gravel", "value": "5"}, {"text": "Clay", "value": "6"}, {"text": "Sand", "value": "7"}, {"text": "Grass/Synthetic Mix", "value": "8"}]'
);
Run Code Online (Sandbox Code Playgroud)
数据库小提琴: …
我最近设置了一个利用Amazon Cloudfront分发非常大的文件的新网站,但亚马逊目前向我的服务器发出了如此多的请求,以至于我的整个网站都停滞不前.
我应该注意,我没有使用S3,cloudfront直接连接到我的服务器.
我有一个100mb的数据连接,我正在尝试分发的文件是两个3GB文件.但是,如果我在ssh中运行iftop,则Amazon ip地址似乎会占用每一行,可能会尝试将同一文件缓存到多个不同的服务器,并且它们似乎正在耗尽我的整个连接.
无论如何将云端限制为10mb或更低的连接?
我正在使用 Laravel 3,除了 through 之外,如何以任何方式设置标题并不明显Response::make()。
我正在做这样的重定向:
return Redirect::to('admin/check');
Run Code Online (Sandbox Code Playgroud)
我想no-cache为重定向设置一个额外的标头,如下所示:
"Cache-Control: no-store, no-cache, must-revalidate"
Run Code Online (Sandbox Code Playgroud)
我意识到我可以直接在 PHP 中执行此操作,但是有没有办法通过 Laravel 设置响应标头?
我需要制作一个动态表单,其中管理区域允许某人在表单中添加和重新排列字段。每个字段都有一个类型:日期、复选框、选择、文本、数字等。我为每个字段类型创建了单独的组件,但现在我的表单看起来像这样(给出示例的伪代码)。
<section v-for="field in fields">
<field-date v-if="field.type === 'date'" v-model="field.value"></field-date>
<field-select v-if="field.type === 'select'" v-model="field.value"></field-select>
<field-number v-if="field.type === 'number'" v-model="field.value"></field-number>
<field-text v-if="field.type === 'text'" v-model="field.value"></field-text>
<field-checkbox v-if="field.type === 'checkbox'" v-model="field.value"></field-checkbox>
</section>
Run Code Online (Sandbox Code Playgroud)
但这已经变得难以控制,而且只会变得更加失控。但我找不到更简单的方法来做到这一点。也许 field 应该是一个带有 render 方法的对象?但这样的话 if/else 就会被抽象到别处。
php ×4
mysql ×3
laravel ×2
artisan ×1
codeigniter ×1
firefox ×1
forms ×1
http ×1
json ×1
laravel-3 ×1
laravel-5 ×1
laravel-5.2 ×1
mysql-json ×1
parentheses ×1
prefetch ×1
preg-match ×1
recursion ×1
redirect ×1
regex ×1
unique-index ×1
utf-8 ×1
utf8mb4 ×1
vue.js ×1
vuejs2 ×1