поищите еще в яваскрипт
если идет аякс обработка, без перезагрузки страницы — то скорее всего, там зашита фраза
и еще есть поиск по содержимому файлов, можно его задействовать чтобы найти фразу
-
я через Brackets делал поиск по файлам на фразу по всей папке плагина. Где он нашел там всё поменял. Перезагрузки страницы нет. Плагин размещён на правом сайдбаре.
-
Денис Николаев: visual-form-builder.php
в этом файле на строке 879 поменяли? -
Да. было заменено: ‘form_success_message’ => ‘Ваш заказ принят. Наши менеджеры свяжатся с Вами в ближайшее время.’
-
270: $default_text = sprintf( ‘%s’, __( ‘Ваш заказ принят. Наши менеджеры свяжатся с Вами в ближайшее время.’ , ‘visual-form-builder’) );
Так же было изменено. -
Денис Николаев:
в файле
строки 110 11
msgid «Your form was successfully submitted. Thank you for contacting us.»
msgstr «»в msgstr можете вписать перевод
msgid оставляете без измененийа перед этим вопрос. Вы кеш чистили?
Если используете кеширующие плагины. то после каждого изменения нужно чистить кеш -
в файле
строки 110 11
Какое название файла? -
-
тоже самое. я просто поставлю другой плагин наверное и всё. спасибо за попытку помочь.
-
но если будут идеи пиши я их испытаю =)
Установил на сайт платный шаблон Лайтшоп, возникла необходимость изменить нумерацию заказа. Она начинается с единицы, хочу задать свое значение. В шаблоне очень много файлом, знаю php совсем поверхностно, поэтому очень трудно найти нужный файл и строку, где можно сделать изменения. Уже понял как называется сама переменная. Пытался найти нужный файл путем поиска по названию переменной. Нашел около сотни файлов, в какой не смотрел, переменная там не объвляется. Есть ли какой-то способ изменить нужную переменную с моими знаниями php? Буду рад любому совету.
задан 9 фев 2018 в 12:32
3
Сейчас скачал опенкарт, посмотрел структуру, скорее всего номер заказа это invoice_no в таблице oc_order
файл adminmodelsaleorder.php
кусок кода
if ($order_info && !$order_info['invoice_no']) {
$query = $this->db->query("SELECT MAX(invoice_no) AS invoice_no FROM `" . DB_PREFIX . "order` WHERE invoice_prefix = '" . $this->db->escape($order_info['invoice_prefix']) . "'");
if ($query->row['invoice_no']) {
$invoice_no = $query->row['invoice_no'] + 1;
} else {
$invoice_no = 1;
}
$this->db->query("UPDATE `" . DB_PREFIX . "order` SET invoice_no = '" . (int)$invoice_no . "', invoice_prefix = '" . $this->db->escape($order_info['invoice_prefix']) . "' WHERE order_id = '" . (int)$order_id . "'");
return $order_info['invoice_prefix'] . $invoice_no;
}
если имели ввиду не сам номер заказа а префикс, то он это invoice_prefix настраивается в конфиге сайта
ответ дан 9 фев 2018 в 14:28
Denis StartsevDenis Startsev
1,2611 золотой знак8 серебряных знаков14 бронзовых знаков
(PHP 4, PHP 5, PHP 7, PHP
in_array — Проверяет, присутствует ли в массиве значение
Описание
in_array(mixed $needle
, array $haystack
, bool $strict
= false
): bool
Список параметров
-
needle
-
Искомое значение.
Замечание:
Если
needle
— строка, сравнение
будет произведено с учётом регистра. -
haystack
-
Массив.
-
strict
-
Если третий параметр
strict
установлен в
true
, тогда функция in_array()
также проверит соответствие типов
параметраneedle
и соответствующего
значения массиваhaystack
.Замечание:
До PHP 8.0.0
строковое
значение параметраneedle
будет соответствовать значению массива0
в нестрогом режиме, и наоборот.
Это может привести к нежелательным результатам. Подобные крайние случаи существуют и для других типов.
Если нет полной уверенности в типах значений,
всегда используйте флагstrict
, чтобы избежать неожиданного поведения.
Возвращаемые значения
Возвращает true
, если needle
был найден
в массиве, и false
в противном случае.
Примеры
Пример #1 Пример использования in_array()
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Нашёл Irix";
}
if (in_array("mac", $os)) {
echo "Нашёл mac";
}
?>
Второго совпадения не будет, потому что in_array()
регистрозависима, таким образом, программа выведет:
Пример #2 Пример использования in_array() с параметром strict
<?php
$a = array('1.10', 12.4, 1.13);
if (
in_array('12.4', $a, true)) {
echo "'12.4' найдено со строгой проверкойn";
}
if (
in_array(1.13, $a, true)) {
echo "1.13 найдено со строгой проверкойn";
}
?>
Результат выполнения данного примера:
1.13 найдено со строгой проверкой
Пример #3 Пример использования in_array() с массивом в качестве параметра needle
<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');
if (
in_array(array('p', 'h'), $a)) {
echo "'ph' найденоn";
}
if (
in_array(array('f', 'i'), $a)) {
echo "'fi' найденоn";
}
if (
in_array('o', $a)) {
echo "'o' найденоn";
}
?>
Результат выполнения данного примера:
Смотрите также
- array_search() — Осуществляет поиск данного значения в массиве и возвращает
ключ первого найденного элемента в случае успешного выполнения - isset() — Определяет, была ли установлена переменная значением, отличным от null
- array_key_exists() — Проверяет, присутствует ли в массиве указанный ключ или индекс
beingmrkenny at gmail dot com ¶
11 years ago
Loose checking returns some crazy, counter-intuitive results when used with certain arrays. It is completely correct behaviour, due to PHP's leniency on variable types, but in "real-life" is almost useless.
The solution is to use the strict checking option.
<?php// Example array$array = array(
'egg' => true,
'cheese' => false,
'hair' => 765,
'goblins' => null,
'ogres' => 'no ogres allowed in this array'
);// Loose checking -- return values are in comments
// First three make sense, last four do not
in_array(null, $array); // true
in_array(false, $array); // true
in_array(765, $array); // true
in_array(763, $array); // true
in_array('egg', $array); // true
in_array('hhh', $array); // true
in_array(array(), $array); // true
// Strict checking
in_array(null, $array, true); // true
in_array(false, $array, true); // true
in_array(765, $array, true); // true
in_array(763, $array, true); // false
in_array('egg', $array, true); // false
in_array('hhh', $array, true); // false
in_array(array(), $array, true); // false?>
leonhard dot radonic+phpnet at gmail dot com ¶
6 months ago
I got an unexpected behavior working with in_array. I'm using following code:
<?php
// ...
$someId = getSomeId(); // it gets generated/fetched by another service, so I don't know what value it will have. P.S.: it's an integer
// The actual data in my edge-case scenario:
// $someId = 0;
// $anyArray = ['dataOne', 'dataTwo'];
if (in_array($someId, $anyArray)) {
// do some work
}
// ...
?>
With PHP7.4, in_array returns boolean true.
With PHP8.1, in_array returns boolean false.
It took me quite some time to find out what's going on.
rhill at xenu-directory dot net ¶
14 years ago
I found out that in_array will *not* find an associative array within a haystack of associative arrays in strict mode if the keys were not generated in the *same order*:
<?php
$needle
= array(
'fruit'=>'banana', 'vegetable'=>'carrot'
);$haystack = array(
array('vegetable'=>'carrot', 'fruit'=>'banana'),
array('fruit'=>'apple', 'vegetable'=>'celery')
);
echo
in_array($needle, $haystack, true) ? 'true' : 'false';
// Output is 'false'echo in_array($needle, $haystack) ? 'true' : 'false';
// Output is 'true'?>
I had wrongly assumed the order of the items in an associative array were irrelevant, regardless of whether 'strict' is TRUE or FALSE: The order is irrelevant *only* if not in strict mode.
Armands Rieksti ¶
3 months ago
I'd like to point out that, if you're using Enum data structures and want to compare whether an array of strings has a certain string Enum in it, you need to cast it to a string.
From what I've tested, the function works correctly:
if the array is filled with strings and you're searching for a string;
if the array is filled with Enums and you're searching for an Enum.
Anonymous ¶
6 months ago
$a = new StdClass();
$b = new StdClass();
// Expected: false, got: true
var_dump(in_array($a, [$b]));
// bool(true)
// Works fine
var_dump(in_array($a, [$b], true));
// bool(false)
thomas dot sahlin at gmail dot com ¶
13 years ago
If you're creating an array yourself and then using in_array to search it, consider setting the keys of the array and using isset instead since it's much faster.
<?php
$slow
= array('apple', 'banana', 'orange');
if (
in_array('banana', $slow))
print('Found it!');$fast = array('apple' => 'apple', 'banana' => 'banana', 'orange' => 'orange');
if (isset(
$fast['banana']))
print('Found it!');?>
Anonymous ¶
6 months ago
$a = new StdClass();
$b = new StdClass();
// Expected: false, got: true
var_dump(in_array($a, [$b]));
// bool(true)
// Works fine
var_dump(in_array($a, [$b], true));
// bool(false)
The isset()
function does not check if a variable is defined.
It seems you’ve specifically stated that you’re not looking for isset()
in the question. I don’t know why there are so many answers stating that isset()
is the way to go, or why the accepted answer states that as well.
It’s important to realize in programming that null is something. I don’t know why it was decided that isset()
would return false if the value is null.
To check if a variable is undefined you will have to check if the variable is in the list of defined variables, using get_defined_vars()
. There is no equivalent to JavaScript’s undefined (which is what was shown in the question, no jQuery being used there).
In the following example it will work the same way as JavaScript’s undefined check.
$isset = isset($variable);
var_dump($isset); // false
But in this example, it won’t work like JavaScript’s undefined check.
$variable = null;
$isset = isset($variable);
var_dump($isset); // false
$variable
is being defined as null, but the isset()
call still fails.
So how do you actually check if a variable is defined? You check the defined variables.
Using get_defined_vars()
will return an associative array with keys as variable names and values as the variable values. We still can’t use isset(get_defined_vars()['variable'])
here because the key could exist and the value still be null, so we have to use array_key_exists('variable', get_defined_vars())
.
$variable = null;
$isset = array_key_exists('variable', get_defined_vars());
var_dump($isset); // true
$isset = array_key_exists('otherVariable', get_defined_vars());
var_dump($isset); // false
However, if you’re finding that in your code you have to check for whether a variable has been defined or not, then you’re likely doing something wrong. This is my personal belief as to why the core PHP developers left isset()
to return false when something is null.
Marinka92 11 / 11 / 3 Регистрация: 19.04.2014 Сообщений: 139 |
||||||||||||
1 |
||||||||||||
02.01.2016, 17:44. Показов 1360. Ответов 12 Метки нет (Все метки)
С Новым Годом! Подскажите пожалуйста как правильно сделать проверку php файла на наличие указанных переменных. Есть файл php в котором хранятся переменные:
Нужна функция которая будет проверять наличие всех заданных переменных
и только если все указанные переменные есть в файле возвращать true, а если хотя-бы одной из них нет — false Читать в строку $string и использовать preg_match? Что-то типа:
1 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
02.01.2016, 17:44 |
12 |
Azdeman Фрилансер 1846 / 1342 / 599 Регистрация: 12.01.2011 Сообщений: 5,431 |
||||||||
02.01.2016, 19:30 |
2 |
|||||||
Может чуток и не понял задачу.
Или
1 |
Marinka92 11 / 11 / 3 Регистрация: 19.04.2014 Сообщений: 139 |
||||
02.01.2016, 19:42 [ТС] |
3 |
|||
Azdeman, переменные находятся в другом файле… данные из него берутся через fread()… мне нужно чтобы в качестве аргументов функции можно было указывать имя файла и список переменных, наличие которых в этом файле нужно проверить… аналогично: есть текстовый файл с некоторой строкой и при помощи функции нужно проверить содержит ли эта строка слова из определённого списка… тоесть:
вот как-то так… сама с кодом ещё не экспериментировала, хотелось услышать мнение тех, кто сталкивался с решением подобных задач…
1 |
Azdeman Фрилансер 1846 / 1342 / 599 Регистрация: 12.01.2011 Сообщений: 5,431 |
||||
02.01.2016, 19:49 |
4 |
|||
Ну тогда например в вашем файле есть aaa или zzz строки Тогда подойдет регулярка
preg_match(‘/(aaa|zzz)/i’,$string);
1 |
61 / 39 / 20 Регистрация: 06.12.2015 Сообщений: 155 |
|
02.01.2016, 21:18 |
5 |
Ну, я тоже так подумал что нужно сначала весь файл функцией fread() прочитать в строку, а потом функцией preg_match() найти все вхождения переменных в эту строку.
1 |
Фрилансер 1846 / 1342 / 599 Регистрация: 12.01.2011 Сообщений: 5,431 |
|
02.01.2016, 21:27 |
6 |
Скажите, пожалуйста, что означают конструкции: проверяет есть ли в файле строки aaa или zzz если одно из них есть или они оба есть в файле то true иначе false.
1 |
11 / 11 / 3 Регистрация: 19.04.2014 Сообщений: 139 |
|
03.01.2016, 10:26 [ТС] |
7 |
Azdeman, этим путём я и пошла, только true в таком случае выдаёт если хоть одна из переменных есть, а нужно чтобы выдавало true только если есть все указанные переменные… мысли такие: preg_match оберну в цикл и буду искать по одной переменной, если искомая переменная найдена то к переменной $found плюсуем единицу, затем проверяем равно ли значение $found количеству искомых переменных, и отсюда уже true false… Хотелось бы узнать мнение специалистов, потому что я сама ещё в php не особо разбираюсь…
1 |
Jewbacabra 4845 / 3857 / 1599 Регистрация: 24.04.2014 Сообщений: 11,316 |
||||||||||||
03.01.2016, 12:37 |
8 |
|||||||||||
Marinka92, а если такая ситуация:
или если имя переменной динамическое?
А если есть класс?
И переменные в какой области видимости проверять?
. Мне кажется что ты делаешь какой-то велосипед, и решение уже давно придумано, и оно гораздо проще.
1 |
Marinka92 11 / 11 / 3 Регистрация: 19.04.2014 Сообщений: 139 |
||||
05.01.2016, 20:13 [ТС] |
9 |
|||
Jewbacabra, всё не так страшно… все переменные имеют следующий формат:
В общем эта функция пугает больше чем фраза математички «Сегодня на уроке будем изучать квадратный трёхчлен»…
1 |
Jewbacabra 4845 / 3857 / 1599 Регистрация: 24.04.2014 Сообщений: 11,316 |
||||||||
05.01.2016, 21:25 |
10 |
|||||||
Marinka92, в таком случае достаточно заинклюдить файл, и проверить через isset наличие переменных.
И получить значения параметров:
1 |
Goga5 61 / 39 / 20 Регистрация: 06.12.2015 Сообщений: 155 |
||||
06.01.2016, 13:12 |
11 |
|||
Немогу понять, у меня компилятор тупит.
Строка $filename = ‘Text.txt’; — это 175 строка. Интерпретатор генерирует ошибку:
1 |
162 / 161 / 66 Регистрация: 28.06.2015 Сообщений: 576 |
|
06.01.2016, 15:06 |
12 |
Немогу понять, у меня компилятор тупит…. Скажите а как это относиться к данной теме?
Строка $filename = ‘Text.txt’; — это 175 строка. Интерпретатор генерирует ошибку: P.S. и вы уж определитесь у вас компилируемый PHP или интерпритируемый
1 |
Emilien 1049 / 654 / 393 Регистрация: 07.11.2015 Сообщений: 1,048 |
||||||||||||||||
12.01.2016, 02:12 |
13 |
|||||||||||||||
Есть файл php в котором хранятся переменные:
Нужна функция которая будет проверять наличие всех заданных переменных
и только если все указанные переменные есть в файле возвращать true, а если хотя-бы одной из них нет — false
Сначала preg_match_all находим все интересующие фрагменты. Потом сравниваем количество найденных имен и количество имен, которые нужно было найти. Если есть повторы, то поможет array_unique.
0 |