1 2 3 4 5 6 7 8 | $str1 = 'asdfFSDdda' ; $str2 = 'Fs' ; //strpos 大小写敏感 stripos大小写不敏感 两个函数都是返回str2 在str1 第一次出现的位置 if ( strpos ( $str1 , $str2 ) === false){ //使用绝对等于 //不包含 } else { //包含 } |
php 判断一个字符串里是否有某个字符
-
当你写爬虫抓不到APP请求包的时候该怎么办?
提示:因为高级篇以后的APP将无法使用很通用的方式处理,每种类型甚至是每个APP的反抓包处理方式都会有差别,所以这个系列以后会以【高级篇-具体类型】的形式来写。
-
Kotlin Sealed class类详解
Sealed class(密封类) 是一个有特定数量子类的类,看上去和枚举有点类似,所不同的是,在枚举中,我们每个类型只有一个对象(实例);而在密封类中,同一个类可以拥有几个对象。
-
Dagger2之Kotlin写法
修饰构造方法 修饰变量,在宿主类里,引入要注入的实例
-
Dagger2使用详解
简单的说,就是一个工厂模式,由Dagger负责创建工厂,帮忙生产instance。遵从Java规范JSR 330,可以使用这些注解。现在不研究Dagger2是如何根据注解去生成工厂的,先来看看工厂是什么东西,理解为什么可以实现了DI(Dependency Injection),如何创建IoC(Inverse of Control)容器。
-
dagger.android--Fragment,BaseFragment
1 使用Fragment参数来代替Activity参数 2 使用 @FragmentKey来代替@ActivityKey 3 使用HasFragmentInjector来代替@HasActivityInjector 4 AndroidInjection.inject(Fragment)方法,在Fragment的onAttach()中调用,而不是在onCreate()中 5 Fragment的Module添加位置,和Activity是不同的,它取决于Fragment需要的其他依赖注入
-
Dependency Injection with Dagger2,Fragment
標註@Provides的method若有parameter的話,Dagger會找出其擁有的該型態物件來使用。我們在Module內新增了DataModel將其列入Dagger的管理下,接著在provideFactory()增加parameter變成provideFactory(DataModel dataModel),Dagger就會找出其管理的DataModel給provideFactory使用。
-
How to use Android Injector for Activity and Fragment objects through New Dagger 2 (with Kotlin)
i added kapt instead of annotationProcessor for kotlin. we dont need to keep annotationProcessor dependency. Also we have to add kotlin-plugin in gradle.
-
Part 3:The dagger.android Missing Documentation, Fragments
As we all know, it would be Very Bad to attempt to perform constructor injection on a Fragment.
-
Android LiveData Transformations
有时候有这样的需求,需要在LiveData将变化的数据通知给观察者前,改变数据的类型;或者是返回一个不一样的LiveData。
-
androidx中的lifecycle组件
Lifecycle-aware components生命周期感知组件执行操作,以响应另一个组件生命周期状态的更改,例如Activity和Fragment。这些组件可以帮助您生成更有组织、更容易维护的轻量级代码。