我试图用双引号将用户输入的字符串换行输出,但我想确保我不会在字符串的任何一端使用双引号.例如,如果用户发布
"你好"
我不想把它变成
""你好""
我可以使用下面的代码相当容易地做到这一点,但是我担心如果我循环遍历很多字符串,这可能会变慢.
$string = '"'.trim($string,'"').'"';
Run Code Online (Sandbox Code Playgroud)
如果有人有更好的方法做到这一点,那就太好了.同样,如果有人能证实我的方式没问题,我会很高兴.
谢谢
我正在研究PHP内容管理系统,并且在测试中已经注意到,几乎每个页面都会查询很多系统的MySQL表,但很少写入.我想知道的是,随着网站流量的增加,这将开始在数据库上占据重要地位,我该如何解决/阻止这种情况?
我最初的想法是开始在文件中存储一些更静态的数据(使用PHP序列化)但这实际上是否减少了服务器负载?我担心的是,我只是将高负载从数据库传输到文件系统!
如果有人能够提供更好的方法,那就太棒了.如果数据量本身有很大影响,我会详细介绍下面我将要存储的一些数据:
我正在尝试在PHP 5+中获取对象实例的唯一ID.
该函数spl_object_hash()可从PHP 5.2获得,但我想知道是否有旧的PHP版本的解决方法.
php.net上的评论中有几个函数,但它们并不适合我.第一个(简化):
function spl_object_hash($object){
if (is_object($object)){
return md5((string)$object);
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
不适用于本机对象(如DOMDocument),第二个:
function spl_object_hash($object){
if (is_object($object)){
ob_start();
var_dump($object);
$dump = ob_get_contents();
ob_end_clean();
if (preg_match('/^object\(([a-z0-9_]+)\)\#(\d)+/i', $dump, $match)) {
return md5($match[1] . $match[2]);
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
看起来它可能是一个主要的性能破坏者!
有人有什么东西吗?
我正在研究一个需要通过静态函数调用和对象方法访问的类.我发现的一件事是我在多个函数中复制逻辑.
简化示例:
class Configurable{
protected $configurations = array();
protected static $static_configurations = array();
public function configure($name, $value){
// ...lots of validation logic...
$this->configurations[$name] = $value;
}
public static function static_configure($name, $value){
// ...lots of validation logic (repeated)...
self::$static_configurations[$name] = $value;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经找到了解决方案,但感觉非常脏:
class Configurable{
protected $configurations = array();
protected static $static_configurations = array();
public function configure($name, $value){
// ...lots of validation logic...
if (isset($this)){
$this->configurations[$name] = $value;
}
else{
self::$static_configurations[$name] = $value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也需要静态功能,以便我可以在整个应用程序中设置配置.此外,这种技术的好处是我可以在两个范围中使用相同的方法名称.
这样的测试范围有问题吗?性能问题,前向兼容性问题等.它在PHP 5.2上都适用于我,我不需要支持<5.
这是我可以一起破解的东西,但我想知道是否有人对我的问题有一个干净的解决方案.我扔在一起的东西不一定非常简洁或快速!
我有这样的字符串///hello/world///.我只需要删除第一个和最后一个斜杠,没有其他斜杠,所以我得到一个像这样的字符串//hello/world//.
PHP trim是不对的:表演trim($string, '/')将返回hello/world.
需要注意的一点是,字符串在开头或结尾不一定有任何斜杠.以下是我希望在不同字符串中发生的一些示例:
///hello/world/// > //hello/world//
/hello/world/// > hello/world//
hello/world/ > hello/world
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
在AS3中,我试图检查一个对象是一个实例,还是扩展一个特定的类.if (object is ClassName)如果对象是实例,则使用类似的工作,ClassName但如果它是扩展 的类的实例则不使用ClassName.
伪代码示例:
class Foo {}
class Bar extends Foo {}
var object = new Bar();
if (object is Foo){ /* not executed */ }
if (object is Foo){ /* is executed */ }
Run Code Online (Sandbox Code Playgroud)
我想要的东西:
class Foo {}
class Bar extends Foo {}
var object = new Bar();
if (object is Foo){ /* is executed */ }
Run Code Online (Sandbox Code Playgroud)
任何人的想法?
php ×5
optimization ×2
string ×2
actionscript ×1
caching ×1
database ×1
doctrine ×1
doctrine-orm ×1
filesystems ×1
flash ×1
inheritance ×1
isset ×1
oop ×1
scope ×1
spl ×1
static ×1
trim ×1