302是重定向了,后臺(tái)是用什么寫(xiě)的
借樓上的兩張表一用,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)化下
兩種解決方法:
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
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è)腳本試一下。
是不是少 /
'/top-php': {
...
}
你確定你這段代碼是復(fù)制過(guò)來(lái)的?有報(bào)錯(cuò)啊,不知道你怎么運(yùn)行成功的。正則那句有錯(cuò)
http://laravelacademy.org/pos... 看看里面的觀(guān)察者呢
如果拿不掉,就減少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),那私有屬性中的"私有"二字的意義是什么??
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。