鍍金池/ 問(wèn)答/ PHP問(wèn)答
念初 回答

借樓上的兩張表一用,sql可以采取左連接:

select 
    u.phone,
    r.createdAt
from
    user u
    left join recharges r on u.phone = r.phone
where
    u.phone = ''
    and r.createdAt in (
        select max(createdAt) from recharges
    )
group by u.phone

類(lèi)似于這種思路,不過(guò)那個(gè)sql的in性能不是很好,這里可以再稍微優(yōu)化下

拮據(jù) 回答

兩種解決方法:
1.修改服務(wù)器 default_server 指向 subDir 目錄,ip訪(fǎng)問(wèn)時(shí)就不用添加subDir路徑,局域網(wǎng)和公網(wǎng)訪(fǎng)問(wèn)方式統(tǒng)一
2.寫(xiě)一個(gè)方法針對(duì)局域網(wǎng)、公網(wǎng)訪(fǎng)問(wèn)方式做判斷,針對(duì)兩種情況返回不同的host_name

怣痛 回答

之前倒是用h5實(shí)現(xiàn)了一個(gè)仿微信聊天項(xiàng)目
https://shixian.com/consultants

抱緊我 回答
  • 試了網(wǎng)上幾個(gè)方法都不管用,于是我直接簡(jiǎn)單粗暴的把 webpack.prod.conf.js 中的 兩處
  • CommonsChunkPlugin注釋掉了。就沒(méi)報(bào)錯(cuò),目前沒(méi)問(wèn)題。
  • 下面把代碼放一下
var path = require('path')
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')

var env = config.build.env

var webpackConfig = merge(baseWebpackConfig, {
  module: {
    rules: utils.styleLoaders({
      sourceMap: config.build.productionSourceMap,
      extract: true
    })
  },
  devtool: config.build.productionSourceMap ? '#source-map' : false,
  output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].[chunkhash].js', true),
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
  },
  plugins: [
    // http://vuejs.github.io/vue-loader/en/workflow/production.html
    new webpack.DefinePlugin({
      'process.env': env
    }),
    new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false
      },
      sourceMap: true
    }),
    // extract css into its own file
    new ExtractTextPlugin({
      filename: utils.assetsPath('css/[name].[contenthash].css', true),
      allChunks: true
    }),
    // Compress extracted CSS. We are using this plugin so that possible
    // duplicated CSS from different components can be deduped.
    new OptimizeCSSPlugin({
      cssProcessorOptions: {
        safe: true
      }
    }),
    // generate dist index.html with correct asset hash for caching.
    // you can customize output by editing /index.html
    // see https://github.com/ampedandwired/html-webpack-plugin
    ...utils.getHtmlPlugins(),
    // keep module.id stable when vender modules does not change
    new webpack.HashedModuleIdsPlugin(),
    // split vendor js into its own file
     <1.--------------------------------------------------------------------->
    // new webpack.optimize.CommonsChunkPlugin({
    //   name: 'vendor',
    //   minChunks: function (module, count) {
    //     // any required modules inside node_modules are extracted to vendor
    //     return (
    //       module.resource &&
    //       /\.js$/.test(module.resource) &&
    //       module.resource.indexOf(
    //         path.join(__dirname, '../node_modules')
    //       ) === 0
    //     )
    //   }
    // }),
     ----------------------------------------------------------------------
    // extract webpack runtime and module manifest to its own file in order to
    // prevent vendor hash from being updated whenever app bundle is updated
     <2.--------------------------------------------------------------------->
    // new webpack.optimize.CommonsChunkPlugin({
    //   name: 'manifest',
    //   chunks: ['vendor']
    // }),
     ----------------------------------------------------------------------
    // copy custom static assets
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.build.assetsSubDirectory,
        ignore: ['.*']
      }
    ])
  ]
})

if (config.build.productionGzip) {
  var CompressionWebpackPlugin = require('compression-webpack-plugin')

  webpackConfig.plugins.push(
    new CompressionWebpackPlugin({
      asset: '[path].gz[query]',
      algorithm: 'gzip',
      test: new RegExp(
        '\\.(' +
        config.build.productionGzipExtensions.join('|') +
        ')$'
      ),
      threshold: 10240,
      minRatio: 0.8
    })
  )
}

if (config.build.bundleAnalyzerReport) {
  var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}

module.exports = webpackConfig
款爺 回答

React 里面除了原生 HTML 元素之外,你自己的組件是不會(huì)自動(dòng)觸發(fā)什么 onClick 之類(lèi)的事件的,需要你自己手動(dòng)調(diào)用父組件通過(guò) props 傳入的方法。

陪妳哭 回答

php只是服務(wù)端的東西,不可能獲取到客戶(hù)端的東西,需要前端app給你提供信息就可以,h5是無(wú)法獲取用戶(hù)端信息的。所以得做個(gè)app來(lái)讀取,比如你可以用mui,5+ sdk有接口可以獲取通訊錄。

舊酒館 回答

data里邊是返回的數(shù)據(jù),也就是e.data ,state:1代表成功
另外 你把接口也沒(méi)打碼暴露在論壇上是不是不太好。。。

孤巷 回答

<meta name="content-type"; charset="UTF-8">

header("Content-Type:text/html;charset=gb2312");

這兩個(gè)地方

柒槿年 回答

首先我們知道,本身PHP是可以以命令行或其他方式運(yùn)行的,不一定需要依賴(lài)于Apache的調(diào)用,以這個(gè)為前提。

目前來(lái)說(shuō),我不知道你這個(gè)slack是實(shí)時(shí)的還是定時(shí)發(fā)送的,我覺(jué)得我們可以跳出本身這個(gè)Apache問(wèn)題,假設(shè)如果是定時(shí)的就用Linux的crontab來(lái)管理PHP程序,做定時(shí)執(zhí)行,如果是實(shí)時(shí)的就采用隊(duì)列形式,你看到了的話(huà)對(duì)這個(gè)問(wèn)題做一下回復(fù),然后我再深入往下進(jìn)行聊這個(gè)問(wèn)題。


經(jīng)過(guò)評(píng)論區(qū)的聊,我覺(jué)得你這個(gè)是想用PHP發(fā)slack,而這個(gè)slack主要是通知Apache進(jìn)程啟動(dòng)了,我覺(jué)得,你應(yīng)該寫(xiě)一個(gè)sh腳本,這個(gè)sh腳本啟動(dòng)了Apache,啟動(dòng)成功然后同時(shí)發(fā)起PHP程序的運(yùn)行,這么考慮就行得通了。

我后面看看能否以nginx為例子寫(xiě)個(gè)腳本試一下。

尛曖昧 回答

非常感謝 @sprout 提供的方法,最終產(chǎn)出的代碼大概是這樣的

疚幼 回答

你確定你這段代碼是復(fù)制過(guò)來(lái)的?有報(bào)錯(cuò)啊,不知道你怎么運(yùn)行成功的。正則那句有錯(cuò)

別瞎鬧 回答

如果拿不掉,就減少js文件請(qǐng)求的數(shù)量:發(fā)布到生產(chǎn)環(huán)境前,使用Gulp或Webpack自動(dòng)將這些js合并一個(gè)或多個(gè),并且壓縮。

伐木累 回答

augular react 是趨勢(shì)吧,用起來(lái)要比jquery稍微爽一點(diǎn)(因?yàn)椴挥貌僮鱠om啊)。而且他們的路由很強(qiáng)大,整個(gè)網(wǎng)站應(yīng)用可以全部無(wú)刷新的完成,用戶(hù)體驗(yàn)很好啊。

裸橙 回答

你好 老鐵 謝邀,這個(gè)問(wèn)題我們公司在寫(xiě)公用組件庫(kù)的遇到過(guò)這個(gè)問(wèn)題關(guān)于wepy動(dòng)態(tài)插槽無(wú)法生成的問(wèn)題,也提給官方了,坐等解決,如果你使用的是wepy這個(gè)框架時(shí),使用slot記得對(duì)應(yīng)的name,如果動(dòng)態(tài)的要生成多個(gè)的swiperitme并且有插槽位置的話(huà),每一個(gè)slot的name記得命為不同的,原生小程序是沒(méi)有slot這個(gè)插槽的,如果想使用slot的話(huà) 推薦使用wepy或者mpvue。

心上人 回答

URI部分用encodeURI,參數(shù)部分用encodeURIComponent,這樣才是相對(duì)完美的編碼方式。

比如`https://example.com/?next=abc...`,得到的結(jié)果分別是:

encodeURI(`https://example.com/?next=abc...`):

"https://example.com/?next=abc.com/def&encoding=utf-8"

encodeURIComponent(`https://example.com/?next=abc...`):

"https%3A%2F%2Fexample.com%2F%3Fnext%3Dabc.com%2Fdef%26encoding%3Dutf-8"

encodeURI(https://example.com/?next=${encodeURIComponent('abc.com/def')}&encoding=${encodeURIComponent('utf-8')}):

"https://example.com/?next=abc.com%252Fdef&encoding=utf-8"

懶得改了,最后的 ` 自己腦補(bǔ)吧

茍活 回答

libiconv 版本不夠?

逗婦乳 回答
為什么又不能訪(fǎng)問(wèn)子類(lèi)的私有屬性呢

???如果能訪(fǎng)問(wèn),那私有屬性中的"私有"二字的意義是什么??