Если необходимо в одной строке заменить все вхождения другой строки, то это можно сделать с помощью одной строчки кода с применением функции replaceAll:

var result = "Строка, в которой нужно заменить".replaceAll("что заменить", "на что заменить");

Пример:

 var myString = "av ggg av";
 var result = myString.replaceAll("av", "123");
 console.log(result); // выведет "123 ggg 123"

Есть 2 варианта, как это можно сделать с помощью чистого JavaScript. 

Первый вариант - если необходимо симулировать поведение HTTP редиректа (не будет записи в истории браузера):

window.location.replace("http://mysite.com");

Второй вариант - если необходим редирект, как будто кто-то перешел по ссылке (будет работать кнопка “Назад” т.к. создастся запись в истории браузера):

window.location.href = "http://mysite.com";

Перенаправление  на другую страницу также можно сделать и с помощью jQuery, но нет смысла подключать эту библиотеку только ради этого:

$(location).attr('href', 'http://mysite.com')

Иногда есть случаи. когда нужно обработать поступающую в заголовках запроса информацию. 

Если название нужного вам заголовка известно, то будет достаточно обратиться к переменной $_SERVER со значением HTTP_ + название заголовка в верхнем регистре:

$test = $_SERVER['HTTP_MYVALUE'];

В переменную $test  будет записано значение заголовка.

Если точного названия не известно, то можно посмотреть все заголовки, получаемые на данном этапе: 

var_dump($_SERVER);

Примечание - в  $_SERVER хранятся не только все заголовки, но и другая информация о сервере. 

 Если необходимо пройтись по всем заголовкам:

foreach ($_SERVER as $name => $value){

//todo: если нужны только заголовки, то необходимо отсеить лишнее, не начинающееся с HTTP_
print_r($name); //название заголовка
print_r($value); //его значение
}

Можно написать функцию, которая вернет true/false:

function isJsonString($string) {
json_decode($string);
return json_last_error() === JSON_ERROR_NONE;
}

Смысл в том, что если ошибок при конвертировании не было - то тогда строка была в формате JSON. 

Для того, чтобы сохранить файл, который загружается с помощью cURL, подойдет такой PHP код:

$ch = curl_init();

$url = 'http://www.test.ru/'
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$out = curl_exec($ch);
curl_close($ch);


$filePath = 'myFile.txt';
$fp = fopen($filePath, 'w');
fwrite($fp, $out);
fclose($fp);

$filePath - путь файла с его названием, куда сохранять данные. 

В CentOS 8 используется новый менеджер пакетов, который поддерживает модульный формат пакетов DNF

Первоначальная настройка  

Суперадмин: 

sudo -i

Добавляем репозитории:

dnf -y install epel-release

Обновляем систему:

dnf update

Добавляем автообновление:

dnf install dnf-automatic

Устатанвливаем yum:

dnf install yum

 

Помочь в поиске ошибок при отправке в Laravel может следующее:

1. В настройках почты в файле ENV установить:

MAIL_DRIVER=log

Письма не будут отправляться, а будут записываться в папку с логами - в них можно посмотреть с какими параметрами они пытаются отправиться.

2. Вывести данные конфигурации для отправки email:

dd(config('mail'));

Допустим, необходимо, чтобы по клику на ссылку происходило что-то иное, а не переход по ссылке. Или при клике на кнопку отправления формы форма не сразу отправлялась, а происходила какая-либо валидация.

Допустим, есть ссылка:

<a href="/link" id="example-link">Ссылка</a>

jQuery код, предотвращающий переход по ссылке:

$('#example-link').click(function(e) {
e.preventDefault();
//ваш код
});

  Ключевое тут - параметр e, который передается в функцию и строка  e.preventDefault();

Для того, чтобы поменять по какой колонке в DataTable будут по умолчанию сортироваться данные, необходимо при инициализации таблицы прописать параметр order:

$(document).ready(function() {
$('#mytable').DataTable( {
"order": [[ 2, "desc" ]]
} );
} );

2 - в данном случае означает порядковый номер колонки. Будьте внимательны - отсчет начинается с 0! 

desc - направление сортировки (еще можно использовать asc)

#mytable - id таблицы

Если у вас есть необходимость поменять дефолтные значения  sql-mode, но они после перезагрузки сервера не срабатывают - то убедитесь, что эту настройку вы вписали в секцию под заголовком 

[mysqld]

Если вы ее вставили в другом месте, то настройка не сработает. 

Если неправильно записать \ в запросе Laravel к базе, то можно не получить ожидаемого результата.

Дело в том, что \ - это символ экранирования, и поэтому чтобы все работало как задумано, необходима немного другая форма записи.

К примеру, нам необходимо получить модель из базы с типом App\Picture

Примерный код:

ModelName::where('type', 'like', 'App\\\\Picture')->get()

Как видно из кода выше, единичный слеш заменяется на 4: \\\\

Постановка проблемы: 

При работе с классом хочется знать, какие поля у этого класса имеются. Если брать Laravel класс, который расширяет Model, то не выйдет записать элементы класса (те, которые наполняются из базы)  с помощью привычных private / public / protected. Вернее, записать-то конечно можно, но автоматически заполняться и работать как ожидается они перестанут.

Решение - сделать описание класса с помощью @property 

При таком варианте ide будет видеть эти значения.

Пример: 


/**
* Class Post
* @property string name - название
* @property string text - текст
*/
class Post extends Model
{
...
}

Если в mySQL запросе вы столкнулись с проблемой “ORDER BY clause is not in GROUP BY clause and contains nonaggregated column” 

то  ее можно временно решить с помощью запроса к базе:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

Это временное решение, при каждом запуске сервера команду нужно выполнять заново.  

Постоянное решение:

Прописать 

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

в my.ini   (или если там уже есть такая строка - удалить оттуда STRICT_TRANS_TABLES)

Для этого есть 2 команды. 

Если необходимо откатить все, а то что было в последнем коммите удалить, то подойдет команда: 

 git reset --hard HEAD~1

Если изменения последнего коммита все-таки нужно оставить (просто они будут в состоянии uncommited):

git reset --soft HEAD~1

Чтобы сохранить данные, приходящие из POST запроса в формате raw (без пар ключ-значение), можно воспользоваться таким кодом:

$myInfo = file_get_contents('php://input');

В данном примере все записалось в переменную $myInfo, затем ее содержимое можно обработать и записать в файл или в базу, если это будет необходимо. 

Иногда появляется необходимость напрямую обратиться в базу в Laravel, минуя Eloquent. 

Сделать это можно с помощью класса DB (не забудьте его импортировать):

DB::select('select * from pages where id = ?', array(1));
DB::insert('insert into pages (name) values (?)', array('test'));
DB::update('update ...');
DB::delete('delete from ...');