摘要
我正在寻找可以创建网页的标准,并且[相当]确定它将出现在Firefox阅读器视图中,如果用户需要的话.
有些网站有此选项,有些则没有.一些文本较多的文本没有此文本的选项.例如,Stack Overflow仅显示问题而不是Reader View中的任何答案.
题
我已经将我的Firefox从38.0.1升级到38.0.5并找到了一个名为ReaderView的新功能 - 这是一种覆盖,可以消除"页面混乱"并使文本更易于阅读.Readerview位于地址栏的右侧,作为某些页面上的可点击图标.
这很好,但从编程的角度来看,我想知道"读者观点"是如何工作的,它适用于哪个页面的标准.我已经对Mozilla Firefox网站进行了一些探索,但没有明确的答案(我找到的任何类型的编程答案),我当然用Google搜索/ Binged这个,这只是带有对Firefox插件的引用 - 这不是插件但是新版Firefox的主要部分.
我假设readerview使用HTML5并且会提取<article>内容,但事实并非如此,因为它适用于维基百科,它似乎没有使用<article>或类似的HTML5标签,而是读取视图提取某些<div>s并单独显示它们.此功能适用于某些HTML5页面 - 例如维基百科 - 但不适用于其他HTML5页面.
如果有人知道Firefox ReaderView实际运行的方式以及网站开发人员如何使用此操作,您能分享吗?或者如果你能找到这些信息的位置,你能否指出我正确的方向 - 因为我无法找到这个.
我正在使用Twitter Bootstrap.我用我的html写道:
<div style="height:100px;" class="span12">
asdfashdjkfhaskjdf
</div>
打开该页面时为什么高度不是100px?
对于后代,原始代码是:
<div height="100px">
据我所知,事务一旦调用$mysqli->autocommit(FALSE);语句就开始,并在调用$mysqli->commit();命令后结束,如下例所示.
<?php
//Start transaction 
$mysqli->autocommit(FALSE);
$mysqli->query('UPDATE `table` SET `col`=2');
$mysqli->query('UPDATE `table1` SET `col1`=3;');
$mysqli->commit();
//End transaction
//Executing other queries without transaction control
$mysqli->query("Select * from table1");
$mysqli->query("Update table1 set col1=2");
//End of executing other queries without transaction control
//Start transaction 
$mysqli->autocommit(FALSE);
$mysqli->query('UPDATE `table` SET `col`=2');
$mysqli->query('UPDATE `table1` SET `col1`=3;');
$mysqli->commit();
//End transaction
?>
我理解正确吗?如果没有,请你纠正我,因为这实际上是我第一次在现实生活中使用交易.
谢谢.
我今天注意到,在我的会话文件中,有一些文件名远远小于其他文件,例如:
标准会话文件:
Run Code Online (Sandbox Code Playgroud)sess_0020cc255681808f78c08b67cd88cbcea13f45ee7629754ed82ccb8b010cf83d2b353b7136847f2876d99f3297a5def5bcc62b433d6d56d7f1b301f82c833aad(5 + 128个字符文件长度)
特殊会话文件:
Run Code Online (Sandbox Code Playgroud)sess_629aca24e094f17d02b3d105ebe9e5d4(5 + 32字符文件长度)
这个站点非常繁忙并且有很多流量(约22k访问者pcm),查看会话文件夹有~1%(实际上是0.92%)这些非常短的命名会话文件.
在去年(2015年)实施本网站重新设计之前,我过去曾经阅读了很多会议,并且从那里开始,我现在已经在我的php.ini:  
session.cookie_httponly=1
session.use_only_cookies=1
session.cookie_secure=1
session.entropy_file=/dev/urandom
session.hash_function=whirlpool
session.session.use_trans_sid=0
session.entropy_length=32
编辑(附加):
session.hash_bits_per_character = 4
session.sid_length 未定义(不可定义),因为此构建使用PHP 5.6.2 
据我所知,这应该是一般的罚款.我已经阅读了很少有关如何确保最小文件长度的其他主题,尽管我已经阅读了有关使用的各种内容,session.entropy_length但这似乎并不明显适用于此问题.
entropy_length值是我唯一不确定其使用和需要的值.
我意识到以下问题我可以尝试并看到它不会造成任何伤害,但如果上述解决方案是预期用途 session.entropy_length ,那将是有用的知识.关于什么是entropy_length实际上是非常实用的文献似乎很少.
我认为会话名称冲突当前存在一个小的潜在问题,而且看起来很奇怪,如此多的会话文件如此奇妙地长,但是一个值得注意的少数群体相对较小.
更新
从评论中有一些细节,值得我总结一下:
htaccess文件没有对PHP的任何方面进行任何更改/temp.我和Laravel 5.3(在Windows服务器上)有同样的问题.我做了所有可能的尝试:检查.env文件,配置,工匠新密钥生成,缓存:清除,配置:清除,编写器更新,但问题随机持续存在.
请注意,具有完全相同版本的apache,mysql,php的相同代码不会在Mac OS上生成此问题.
我发现密钥(加密器约束器的第一个参数)到达"有时"是空的,当然它失败了.大多数情况下密钥是正确的,但随机密钥从EncryptionServiceProvider到达为空,然后再将其询问应用程序配置.
因此,对我有用的唯一解决方案是if ($key)在EncryptionServiceProvider中添加一个,以便不使用空键调用加密构造函数.
当然不是一个"干净"的解决方案,也没有解释问题,但至少避免找到填充错误的日志文件:
RuntimeException:唯一支持的密码是AES-128-CBC和AES-256-CBC,页面显示正确.
如果这是一个我不知道的Laravel bug,但当然如果有人可以解释这一点,我会更乐意知道.
下面是我修改过的类:我if ($key)之前添加了以下行new Encrypter:
class EncryptionServiceProvider extends ServiceProvider
{
    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->app->singleton('encrypter', function ($app) {
            $config = $app->make('config')->get('app');
            // If the key starts with "base64:", we will need to decode the key before handing
            // it off to the encrypter. Keys may be base-64 encoded for presentation and we …我有大约5000行和950列的csv文件.首先我将它加载到DataFrame:
val data = sqlContext.read
  .format(csvFormat)
  .option("header", "true")
  .option("inferSchema", "true")
  .load(file)
  .cache()
之后我搜索所有字符串列
val featuresToIndex = data.schema
  .filter(_.dataType == StringType)
  .map(field => field.name)
并想要索引它们.为此,我为每个字符串列创建索引器
val stringIndexers = featuresToIndex.map(colName =>
  new StringIndexer()
    .setInputCol(colName)
    .setOutputCol(colName + "Indexed"))
并创建管道
val pipeline = new Pipeline().setStages(stringIndexers.toArray)
但是当我尝试用这个管道转换我的初始数据帧时
val indexedDf = pipeline.fit(data).transform(data)
我得到StackOverflowError
16/07/05 16:55:12 INFO DAGScheduler: Job 4 finished: countByValue at StringIndexer.scala:86, took 7.882774 s
Exception in thread "main" java.lang.StackOverflowError
at scala.collection.immutable.Set$Set1.contains(Set.scala:84)
at scala.collection.immutable.Set$Set1.$plus(Set.scala:86)
at scala.collection.immutable.Set$Set1.$plus(Set.scala:81)
at scala.collection.mutable.SetBuilder.$plus$eq(SetBuilder.scala:22)
at scala.collection.mutable.SetBuilder.$plus$eq(SetBuilder.scala:20)
at scala.collection.generic.Growable$class.loop$1(Growable.scala:53)
at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:57)
at …- 题 -
我刚刚开始使用REST API,我感到非常困惑.
这就是我的PHP cRUL客户端对于PUT的看法.
case 'PUT':
    curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
    curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
    break;
现在,当我查看服务器时,我的$ _SERVER ['REQUEST_METHOD']显示了PUT,但我的问题是如何获取我用CURLOPT_POSTFIELDS发送的$数据.
我需要做的就是将带有PUT请求的$ data发送到下一行.喜欢
$value = $data['curl_data'];
我在这个话题上看到了这么多的混乱,让我头疼.在php客户端方面似乎很容易,但是没有人有能够为php服务器端工作的答案.
谢谢你的帮助!
- 回答(帮助和作业后) -
我很新,所以直到8小时后才能回答我自己的问题...奇怪:)
好的,在与这里的优秀人士合作之后,我不得不说我们遇到了答案.我正在踢它,因为它很容易,同时令人困惑.
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($handle, CURLOPT_POSTFIELDS, http_build_query($data));
第一个更改(上面)我不得不在$ data周围添加http_build_query().这将我的数据从数组转换为url友好字符串.
接下来我必须添加.
parse_str(file_get_contents('php://input'), $put);
现在我可以做像$ put ['data']这样的事情.
PaulPRO上面给出的答案确实能够以更少的行来获得与file_get_contents()相同的数据.我们陷入困境,试图弄清楚如何解析数据,这是我在另一个网站上看到的缺少http_build_query()的地方.
所以这就是它的运作方式.
我看到很多关于使用PUT发送文件的消息.我可以看到这是如何工作的,但是从我在整个REST过程中读到的内容来看,PUT是更新数据,因为post是创建数据.也许我弄错了.我错过了什么吗?
如何模仿word-break: break-word;IE9,IE11和Firefox?
它似乎适用于Chrome.我已经了解并理解它只是一个非标准的webkit.
仅供参考,我尝试过使用,
white-space: pre-wrap;
而更像是,
   overflow-wrap: break-word;
还尝试了下面提到的CSS,
 word-wrap:  break-word;
 word-break: break-word;
但这些似乎不起作用.
我无法通过
display: block;明确表示跨度(包含文本)来提供固定宽度,因为文本是动态的,并且会根据用户的地理位置而有所不同.目前我们支持大约18种语言.
这是代码的外观,
HTML,
<div id="grid2">
     <span id="theSpan">Product Support</span>
</div>
CSS,
#theSpan{
   white-space: pre-wrap;      /* CSS3 */   
   white-space: -moz-pre-wrap; /* Firefox */    
   white-space: -pre-wrap;     /* Opera 7 */   
   white-space: -o-pre-wrap;   /* Opera 7 */    
   word-wrap: break-word;      /* IE */
   word-break: break-all;
}
#grid2{
   width: 100px;
}
看起来像这样,
我希望它像,
请注意:
 
我必须使用word-break: break-all;某些语言,翻译后的文本太长并且溢出网格."产品支持"一词是动态的.
更新:
 
我有一个固定宽度的div与id,grid2.在其中一种语言中,翻译的文本太长,它是一个单词,它流出grid2 div.
也更新了代码.
我有两个网站,一个是TLS,一个不是,两个都是针对同一个客户,但我需要网站彼此共享(并且只有彼此)用户,订单,账户等的常用数据.
这通常是通过$_SESSION数据完成的,但显然这些不能在其他站点上工作,我发现我可以将会话数据存储在数据库(MySQL)中而不是文件系统中.
我已经挖过这个有用的指南,以及这个较旧但 有用的指南.我还发现这个指南有更新的MySQL.
我编写了一个接口类,但它只是部分工作,它将会话数据存储在数据库中,但它不会检索它.我还使用了PHP手册中的建议方法.
我的MySQL(从以上几个链接复制):
CREATE TABLE `sessions` (
  `id` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `access` int(10) NOT NULL,
  `data` text COLLATE utf8_unicode_ci NOT NULL,
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDb DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
请注意: 在我向您展示我的界面类之前,请知道Db连接使用我自己的定制界面,并且它本身就能完美运行.
在
$sessionDBconnectionUrl为我保持从主要网站内容的独立数据库会话包含会话数据库连接的详细信息.
我的接口类(基于以上所有链接)
<?php
/***
 * Created by PhpStorm.
 ***/
class HafSessionHandler implements SessionHandler {
    private $database = null;
    public function __construct($sessionDBconnectionUrl){
        if(!empty($sessionDBconnectionUrl) …我试图用来datetime-local选择日期和时间。
输入工作正常,不幸的是我似乎根本无法让该step属性工作。
MDN文档似乎建议我应该能够使用它在几秒钟内设置一个步骤,但这根本不起作用。
<form method='post' action='#'>
    <input
      type="datetime-local"
      id="meeting-time"
      name="meeting-time"
      value="2018-06-12T19:30"
      min="2018-06-07T00:00"
      max="2018-06-14T00:00"
      step="900"
    />
<input type='submit' value='Go!'>
</form>我错过了什么吗?
php ×5
html ×3
css ×2
firefox ×2
session ×2
apache-spark ×1
database ×1
input ×1
java ×1
javascript ×1
laravel ×1
mysql ×1
mysqli ×1
put ×1
rest ×1
scala ×1
server-side ×1
transactions ×1