$text = '...';
$textSize = mb_strlen($text);
$paragraphsCount = 5;
$averageParagpaphSize = ceil($textSize / $paragraphsCount);
$paragraphs = [];
for ($i = 0; $i < $paragraphsCount; $i++)
{
$currentParagraph = mb_substr($text, $averageParagpaphSize * $i, $averageParagpaphSize);
$paragraphs[] = $currentParagraph;
}
for ($i = 1; $i < $paragraphsCount; $i++)
{
$currentParagraph = $paragraphs[$i - 1];
$nextParagraph = $paragraphs[$i];
if (mb_substr($currentParagraph, -1, 1) !== '.')
{
$dotPosition = mb_strpos($nextParagraph, '.') + 1;
$currentParagraph .= mb_substr($nextParagraph, 0, $dotPosition);
$nextParagraph = trim(mb_substr($nextParagraph, $dotPosition));
}
$paragraphs[$i - 1] = $currentParagraph;
$paragraphs[$i] = $nextParagraph;
}
var_dump($paragraphs);
$text = '...';
$paragraphsCount = 5;
$sentences = mb_split('\.', $text);
$paragraphs = array_chunk($sentences, ceil(count($sentences) / $paragraphsCount));
array_walk($paragraphs, function (&$paragraphSentences) {
$paragraphSentences = implode(' ', $paragraphSentences);
});
var_dump($paragraphs);
$periodString = '12:00-02:00';
$weekDay = 'Friday';
$period = [
'start' => new DateTime(),
'end' => new DateTime(),
];
$day = (int)date('d', strtotime('this '.$weekDay));
$month = (int)date('m', strtotime('this '.$weekDay));
$year = (int)date('Y', strtotime('this '.$weekDay));
foreach (array_combine(['start', 'end'], explode('-', $periodString)) as $type => $part)
{
list($hour, $minute) = explode(':', $part);
$hour = (int)$hour;
$minute = (int)$minute;
$date = $period[$type];
$date->setDate($year, $month, $day);
$date->setTime($hour, $minute);
}
if ($period['start'] > $period['end'])
{
$period['end']->add(new DateInterval('P1D'));
}
$now = new DateTime();
$isInInterval = $now >= $period['start'] && $now <= $period['end'];
var_dump($isInInterval);
class Interval
{
private $data;
private $timezone;
private $start;
private $end;
public function __construct($serialized, $timezoneName = 'UTC')
{
$this->parse($serialized);
$this->timezone = new DateTimeZone($timezoneName);
$this->makeStart();
$this->makeEnd();
}
public function contains(DateTimeInterface $date)
{
return $date >= $this->start && $date <= $this->end;
}
public function isNow()
{
$now = new DateTimeImmutable('now', $this->timezone);
return $this->contains($now);
}
private function parse($serialized)
{
$parts = explode('-', $serialized);
$this->data = [
'start' => $this->parsePart($parts[0]),
'end' => $this->parsePart($parts[1]),
];
}
private function makeStart()
{
$this->start = $this->makeDate($this->data['start']['hour'], $this->data['start']['minute']);
}
private function makeEnd()
{
$this->end = $this->makeDate($this->data['end']['hour'], $this->data['end']['minute']);
$this->ensureEndIsAfterStart();
}
private function parsePart($part)
{
list($hour, $minute) = explode(':', $part);
return [
'hour' => $hour,
'minute' => $minute,
];
}
private function makeDate($hour, $minute)
{
list($day, $month, $year) = explode('.', date('d.m.Y'));
$date = new DateTime('now', $this->timezone);
$date->setDate($year, $month, $day);
$date->setTime($hour, $minute);
return $date;
}
private function ensureEndIsAfterStart()
{
if ($this->start > $this->end)
{
$this->end->add(new DateInterval('P1D'));
}
}
}
// Примеры использования:
$interval = new Interval('11:59-02:00', 'Europe/Moscow');
var_dump($interval->isNow());
$date = new DateTime('now', new DateTimeZone('Europe/Moscow'));
$date->add(new DateInterval('PT8H'));
var_dump($interval->contains($date));
foreach ($_FILES["files"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES["files"]["tmp_name"][$key];
${'file_'.$key} = $_FILES["files"]["name"][$key];
move_uploaded_file($tmp_name, "uploads/$name");
}
}
<?php
$custom_field_name = [];
if (osc_count_item_meta() >= 1)
{
while (osc_has_item_meta())
{
if (osc_item_meta_value() != "")
{
$custom_field_name [osc_item_meta_slug()] = osc_item_meta_name();
$custom_field_value [osc_item_meta_slug()] = osc_item_meta_value();
}
}
}
if (
array_key_exists('additional_file', $custom_field_name) && array_key_exists('additional_file', $custom_field_value) &&
array_key_exists('put_kesh', $custom_field_name) && array_key_exists('put_kesh', $custom_field_value)
): ?>
<div class="block_list">
<div id="useful_info">
<h2 class="title">
<?php _e('Дополнительные файлы', OSCLASSWIZARDS_THEME_FOLDER); ?>
</h2>
<p class="left"><?= $custom_field_name ['additional_file']; ?> : <strong> <?= $custom_field_value ['additional_file']; ?></strong></p>
<p class="left"><?= $custom_field_name ['put_kesh']; ?> : <strong> <?= $custom_field_value ['put_kesh']; ?></strong></p>
</div>
</div>
<?php endif ?>
<?=
- это и есть echo. Зачем вы пытаетесь вывести его второй раз в виде строки?switch ($strPath)
{
case '/catalog/kategioria1/index.php':
echo $arElement["SIZE"];
break;
case '/catalog/kategioria2/index.php':
echo $arElement["WIEGHT"];
break;
default:
echo $arElement["BRAND"];
break;
}
Иван, недавно переехавший в город N. спросил: «Как твои дела?» - и протянул однокласснице букет полевых цветов. Она смутилась и покраснела, но букет приняла. Смеркалось...вы не разберете на предложения никакой регуляркой (и это я еще из Толстого пример не взял).
$release->{"country-code"} или $release->{"@country"}
return "{$this->product}"
$this->product->__toString()
.class Product {
public function __toString() {
return 'foo';
}
}
class Thing {
private $product;
public function __construct() {
$this->product = new Product;
}
public function bar() {
// Писать меньше и можно гордиться своим крутым маневром
// Но через месяц надо вспоминать, зачем это кавычки вокруг свойства
return "$this->product";
// Наглядно и понятно, никакой магии
return $this->product->__toString();
}
}
$thing = new Thing();
var_dump($thing->bar());
empty($_POST['foo'])
, то вылезет NOTICE - Undefined index: foo.array_key_exists('foo', $_POST)
, но это значительно дольше набирать. скрипт выводит только строку title в таблице news
SELECT title FROM news
<div class="container">
<div class="row">
<?php
for($i = 0; $i < 10; $i++)
{
echo '<div class="col-md-4 col-xs-12">Запись '.$i.'</div>';
if ($i % 3 == 2)
{
echo '</div>';
echo '<div class="row">';
}
}
?>
</div>
</div>
$ar = range(0, 11);
$size = count($ar) - 1;
foreach($ar as $i => $v)
{
echo '<div class="col-md-4 col-xs-12">Запись '.$v.'</div>';
if ($v % 3 == 2 && $i < $size)
{
echo '</div>';
echo '<div class="row">';
}
}
$order->get_new_events_count('comments') > 0
(это может быть true или false). echo true; // выведет "1"
echo false; // выведет "" (пустую строку).
<?php
$new_events = $order->get_new_events_count('comments');
?>
<?php if ($new_events > 0): ?>
<?= $new_events; ?>
<?php endif; ?>
<? if (($new_events = $order->get_new_events_count('comments')) > 0): ?>
<?= $new_events; ?>
<? endif; ?>
if ($foo = $bar)
, вместо if ($foo == $bar)