$str = <<<'DOC'
var1='Value 1' and var2='Value 2'
var1='Value 1 a' and var2='2 b'
var1=' 1a ' and var2='2b'
var1='Value 1 2 3 abc 4'
DOC;
echo preg_replace_callback("/'[^']+'/", function($value) {
return str_replace(' ', '', $value[0]);
}, $str);
// var1='Value1' and var2='Value2'
// var1='Value1a' and var2='2b'
// var1='1a' and var2='2b'
// var1='Value123abc4'
$reader = new XMLReader();
$reader->open($path);
while($reader->read()) {
if (
$reader->nodeType == XMLReader::ELEMENT
&& $reader->hasAttributes
&& $reader->localName === 'INSPECTION'
) {
$xml = simplexml_load_string(str_replace('tns:', '', $reader->readOuterXml()));
var_dump( json_decode(json_encode($xml), true) );
} else continue;
}
function getPosts() {
$query = mysqli_query($db, "SELECT * FROM `table` WHERE `id` = '$_SESSION[id]'");
$count = mysqli_num_rows($query);
return [
'query': $query,
'count': $count
];
}
$posts = getPosts();
$countOfPosts = $posts['count'];
while ($posts['count'] == $countOfPosts) { // условие верно при первом отображении страницы
$posts = getPosts(); // значение $posts обновляется при первом обращении и каждой итерации цикла
if ($posts['count'] > $countOfPosts) { // а вот переменная $countOfPosts не обновляется
$countOfPosts = $posts['count']; // устанавливаем новое значение для нее, если обновились посты
$row = mysqli_fetch_assoc($posts['query']);
die "Вывод результатов";
} // если условие не сработало, пойдет следующая итерация цикла, т.к. $countOfPosts == свежему $posts['count']
sleep(2); // просто реже делать запросы к базе для уменьшения нагрузки
}
$string = '40|https://site1.com/files/02bea218b601ef2cbc74e08dc8d78_1000_1000.png;77|https://site1.com/files/29037cbdc27707fe2d6b2cf4d3924_1000_1000.png;78|https://site1.com/files/923b6f214f8bffcf20fbbebe5365b_1000_1000.png;85|https://site1.com/files/f8b6dbe261e89877e23e6a6f00003_1000_1000.png';
$result = substr(preg_replace('/\|.*?(?:;|$)/', ',', $string), 0, -1);
echo $result; // 40,77,78,85
class Crud
{
public $connect;
private $host = 'localhost';
private $username = 'root';
private $password = '';
private $database = 'baza';
function __construct()
{
$this->database_connect();
}
public function database_connect()
{
$this->connect = mysqli_connect($this->host, $this->username, $this->password, $this->database);
mysqli_set_charset($this->connect, 'utf8');
}
public function execute_query($query)
{
return mysqli_query($this->connect, $query);
}
#server1.conf
Listen 127.0.0.1:8888
<VirtualHost 127.0.0.1:8888>
# ...
<Directory /home/user/server1/>
# ...
php_admin_value session.save_path /tmp/php_sessions/server1
php_admin_value upload_tmp_dir /tmp/php_upload/server1
</Directory>
# ...
</VirtualHost>
#server2.conf
Listen 127.0.0.1:8889
<VirtualHost 127.0.0.1:8889>
# ...
<Directory /home/user/server2/>
# ...
php_admin_value session.save_path /tmp/php_sessions/server2
php_admin_value upload_tmp_dir /tmp/php_upload/server2
</Directory>
# ...
</VirtualHost>
$str= '703@ext-local : PJSIP/703&SIP/99703& State:Idle Presence:available Watchers 16 1 hint matching extension 703';
preg_match('#(?<=State:)\S+#', $str, $state);
echo $state[0];
class A
{
public static function test()
{
echo 'class A';
}
public static function testMethodFromParent()
{
echo self::test()." | self::test()\n";
echo static::test()." | static::test()\n";
echo B::test()." | B::test()\n";
}
}
class B extends A
{
public static function test()
{
echo 'class B';
}
public static function testMethodFromChild()
{
echo B::test()." | B::test()\n";
echo self::test()." | self::test()\n";
echo static::test()." | static::test()\n";
echo parent::test()." | parent::test()\n";
}
}
echo "Вызов функции дочернего класса в дочернем классе\n";
B::testMethodFromChild();
echo "\nВызов родительской функции в дочернем классе\n";
B::testMethodFromParent();
/*
Вызов функции дочернего класса в дочернем классе
class B | B::test()
class B | self::test()
class B | static::test()
class A | parent::test()
Вызов родительской функции в дочернем классе
class A | self::test()
class B | static::test()
class B | B::test()
*/
B::test()
- то же, что и static::test()
, но привязано к B, а не к тому дочернему классу, который вызывает метод, в отличие от static.На сколько плох мой подход, что я передаю $redis параметром в метод?Это называется Dependency Injection и так реализуется композиция, это очень хорошо, т.к. работают принципы ООП - метод не знает ничего об объекте, объекты могут быть различные, что расширяет возможности.
На сколько плохо передавать объект параметром в метод?Абсолютно не плохо.
<?php ob_start();?>
<i class="fa fa-comments-o"></i>
{{count($LastArticle->comments)}}
{{Lang::choice('ru.comments',count($LastArticle->comments))}}
<?php $content = ob_get_contents();
ob_clean();
switch (count($LastArticle->comments)) :
case false:
echo $content;
break;
default: ?>
<a href="{{route('post',['articles'=>$LastArticle->id])}}#comments" title="">
<? echo $content; ?>
</a>
<? break;
endswitch;