鍍金池/ 問答/ PHP問答
溫衫 回答
<view class='tab'>
  <view class='tab-menu'>
    <view class='menu' wx:for="{{tabs}}" wx:key="{{index}}" data-tabidx="{{index}}" bindtap='switchTab'>
      <text>{{item}}</text>
      <view class='currentTab' wx:if="{{tabIdx === index}}"></view>
    </view>
  </view>
  <swiper class='tab-content' current='{{tabIdx}}' bindchange='scrollTab'>
    <swiper-item>
      <view class='question-wrap'>
        <view class='question-header'>
          <text>[{{questions[current].type}}]</text>
          <text class='total'><text class='current'>{{current+1}}</text>/{{questions.length}}</text>
        </view>
        <view class='title'>{{questions[current].title}}</view>
        <view class='options'>
          <view class='opt {{questions[current].right === index ? "right" : ""}}' wx:for="{{questions[current].options}}" wx:key="{{index}}">
            <view class='tag'>
              <image src='/icons/right.png' wx:if="{{questions[current].right === index}}"></image>              
            </view>
            <view class='content'>{{item.content}}</view>
            <text class='rate'>{{item.rate}}</text>
          </view>
        </view>
      </view>
      <view class='btns'>
        <button disabled='{{current <= 0}}' bindtap="showPre">上一題</button>
        <button disabled='{{current >= questions.length-1}}' bindtap="showNext">下一題</button>
      </view>
    </swiper-item>

    <swiper-item>
      <scroll-view scroll-y class='totalRank' lower-threshold="150" bindscrolltolower="getRank">
        <view class='user' wx:for="{{ranks}}" wx:key="{{index}}">
          <image src='{{item.img_url}}' class='avator'></image>
          <view class='name'>{{item.name}}</view>
          <view class='score'>{{item.score}}分</view>
          <view class='order'>第{{item.no}}名</view>
        </view>
      </scroll-view>
    </swiper-item>
  </swiper>
</view>
page {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  font-size: 30rpx;
}

.tab {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.tab-content {
  flex: 1;
  overflow-y: auto;
}

.tab-menu {
  height: 104rpx;
  display: flex;
}

.currentTab {
  background: #42c541;
  height: 2rpx;
  width: 132rpx;
  position: absolute;
  bottom: 20rpx;
}

.tab-menu .menu {
  flex: 1;
  text-align: center;
  font-size: 28rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

swiper-item {
  overflow: auto;
}

.totalRank {
  height: 100%;
}

.avator {
  width: 60rpx;
  height: 60rpx;
  border-radius: 50%;
}

.user {
  height: 88rpx;
  display: flex;
  align-items: center;
  background: #f4f4f4;
  padding: 0 43rpx;
  margin: 30rpx 30rpx 0 30rpx;
  border-radius: 10rpx;
  box-sizing: border-box;
  font-size: 24rpx;
}

.name, .score, .order {
  flex: 1;
  text-align: center;
}
.name{
  margin-left: 50rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.order {
  color: #42c541;
  text-align: right;
}

.question-wrap{
  display: flex;
  flex-direction: column;
  margin: 0 30rpx;
  border: 2rpx solid #DCDCDC;
  border-radius: 10rpx;
  box-sizing: border-box;
  padding: 0 50rpx;
  margin-top: 40rpx;
}
.question-header{
  display: flex;
  justify-content: space-between;
  margin-top: 60rpx;
}
/* .question-wrap .options{
  max-height: 600rpx;
  overflow: auto;
} */
.question-header .total{
  color: #E3E3E3;
}
.question-header .current{
  color: #353535;
}
.question-wrap .title{
  margin-top: 36rpx;
  min-height: 178rpx;
}
.opt{
  text-align: center;
  position: relative;
  background: #F0F0F0;
  margin-bottom: 44rpx;
  border-radius: 10rpx;
  padding: 26rpx 20rpx;
  display: flex;
  align-items: center;
}
.opt image, .opt .tag{
  width: 46rpx;
  height: 34rpx;
}
.opt .rate{
  min-width: 3em;
}
.opt .content{
  flex: 1;
  text-align: center;
}
.right{
  background: #FF920B;
  color: #FFF;
}
.btns{
  display: flex;
  margin-top: 60rpx;
  position: fixed;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 148rpx;
}
.btns button{
  width: 260rpx;
  height: 88rpx;
  line-height: 88rpx;
  text-align: center;
  border-radius: 10rpx;
  color: #FFF;
  background: #41C629;
}

.btns button:active{
  background: #179B16;
  color: #A2D7A2;
}
.btns button[disabled]:active{
  background: #F7F7F7;
  color: #ACACAC;
}
Page({
  data: {
    tabs: [
      '題目分析',
      '成績排名'
    ],
    ranks: [
      { name: '張三', score: 93 },
      { name: '李四', score: 60 },
      { name: '趙六', score: 8 },
      { name: '王五', score: 1000 },
      { name: '馮二', score: 45 }
    ],
    questions: [],
    current: 0,
    tabIdx: 0
  }
})
吃藕丑 回答

正常的不是應該下面這樣嗎 我的超鏈接明明是添加的 http://123.com/Hou-1234 前臺顯示的卻是 http://123.com/

<a >http://123.com/Hou-1234</a>

正常的應該是上面這樣的。

陌離殤 回答
  1. 緩存,就可以不走數(shù)據(jù)庫
  2. 消息隊列,可以限制到數(shù)據(jù)庫的數(shù)量,減緩壓力
  3. 連接池管理,復用連接,等待管理。
  4. 數(shù)據(jù)庫優(yōu)化,讀寫優(yōu)化,提升數(shù)據(jù)庫的效率。
奧特蛋 回答

換個思路解決,不用多余的各種查詢開銷。在用戶表里面加兩個字段 {連續(xù)打卡天數(shù),最后打卡日期}。打卡的時候判斷最后日前是不是今天,如果是啥也不做;如果是昨天,打卡天數(shù)++,更新最后打卡日期;如果是前天或更久的日期,將打開天數(shù)改為1,更新最后打卡日期

落殤 回答

你的https是在php里實現(xiàn)的還是在nginx里實現(xiàn)的?

薔薇花 回答

\r\n \r \n了解一下?

祉小皓 回答
  1. 配置NFS并掛載其他服務器的日志到同一服務器
  2. 搭建分布式日志收集系統(tǒng)(scribe、chukwa、kafka、flume等)
無標題 回答

從圖片名字看,應該是前端發(fā)起了多次請求造成

可以檢查瀏覽器調試器里的network是否發(fā)起多次請求

怣人 回答
  1. 需要拿到用戶openid
  2. 拿到公眾號的access_token
  3. 請求https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
  4. 檢查返回數(shù)據(jù)的subscribe 字段
懷中人 回答

其實這個不用你自己實現(xiàn),你直接使用現(xiàn)成的就可以了,新浪和騰訊貌似都有對應的獲取接口,只需用 js 就行。例如 新浪實時股票數(shù)據(jù)接口

瘋浪 回答

加上 -vvv 看看具體下載進度。

如果還是不行試試這個代理

https://packagist.laravel-china.org

失心人 回答

知道原因了 需要自己手動創(chuàng)建tmp目錄 坑

莫小染 回答

相當于就是php給python下發(fā)要訪問的網(wǎng)頁?
php的內容可以存到redis里,scrapy繼承一個RedisSpider的類就實現(xiàn)了從redis里面獲取數(shù)據(jù)分布式爬,可以去了解一下

心上人 回答

thinkphp 查詢寫法
$where['g.preic'] = array('between','10,20');
$where['ge.level'] = 60;
$where['ge.money'] = 1000;
M('goods')
->alias('g')
->join('left join goods_ext ge on ge.goods_id = g.goods_id')
->where($where)
->select();

柒喵 回答

好像明顯是服務器報錯, 用的是不是tp? 如果是配置 tp config里的debug參數(shù)