# переопределяем страницы ошибок
ErrorDocument 400 /error.php?err=400
ErrorDocument 401 /error.php?err=401
ErrorDocument 402 /error.php?err=402
ErrorDocument 403 /error.php?err=403
ErrorDocument 404 /error.php?err=404
ErrorDocument 500 /error.php?err=500
ErrorDocument 502 /error.php?err=502
ErrorDocument 404 /
class SimpleClass
{
public function __invoke()
{
return $this;
}
public function stdout($string)
{
echo $string;
return $this;
}
}
class SimpleClass
{
public function __invoke(string $string = PHP_EOL): self
{
echo $string;
return $this;
}
}
if ($auth instanceof User) {
// user related code
} elseif ($auth instanceof Server) {
// server related code
} else {
throw new SomeException()
}
$stock = [
["id"=>1, "ver"=>13, "name"=>"gta v"],
["id"=>2, "ver"=>48, "name"=>"gta sa"],
["id"=>3, "ver"=>119, "name"=>"chess"],
];
$total = 0;
foreach($stock as $v) $total += $v["ver"];
$rnd = rand(1, $total);
$run = 0;
foreach($stock as $v) {
$run += $v["ver"];
if( $rnd <= $run) break;
}
$prizeName = $v["name"];
/* @var string Исходный текст в синтаксисе HEREDOC */
$process = <<<TEXT
Lorem ipsum
Lorem ipsum
Lorem ipsum
TEXT;
/**
* Оборачивает элемент в тег <span>
* @param type $element
* @return type
*/
function spanElement( $element )
{
return "<span>{$element}</span>";
}
// Получаем построчно исходный текст
// примечание: если есть средство работающее без регулярок, то лучше использовать его
$arProcess = explode("\n", $process);
// Применяем к каждому элементу нашу функцию, модицифируя ее значения
// см: http://php.net/array-map
$arProcess = array_map('spanElement', $arProcess);
/*
При вызове var_dump на $arProcess результат будет следующим:
array(3) {
[0] =>
string(24) "<span>Lorem ipsum</span>"
[1] =>
string(24) "<span>Lorem ipsum</span>"
[2] =>
string(24) "<span>Lorem ipsum</span>"
}
*/
// Вновь объединяем это все в исходный текст
$process = implode("\n", $arProcess);
/*
При вызове var_dump на $process результат будет следующим:
string(74) "<span>Lorem ipsum</span>
<span>Lorem ipsum</span>
<span>Lorem ipsum</span>"
*/
$userId = 20;
try {
$db = new PDO("pgsql:dbname=basa;host=localhost", "admin", "123" );
$sql = "SELECT * FROM public.users WHERE id = ?";
$sqlQuery = $db->prepare($sql);
$sqlQuery->execute([$userId]);
while($result = $sqlQuery->fetch(PDO_FETCH_ASSOC))
{
echo "{$result['id']} / {$result['name']}<br />";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
sudo apt-get install jpegoptim imagemagick optipng
find . -type f \( -name "*.jpeg" -or -name "*.jpg" \) -exec mogrify -resize x100 -quality 90 {} \; -exec jpegoptim -o --strip-all {} \;
find . -type f -name "*.png" -exec mogrify -resize x100 {} \; -exec optipng -o1 {} \;
mogrify -resize ШИРИНАxВЫСОТА -quality КАЧЕСТВО
optipng -o9 file.png
optipng -o5 file.png
<link rel="stylesheet" type="text/css" href="my.css?ver=42">
npm run build
в нужной директории (любой сборщик умеет запускать произвольную внешнюю команду).