Проверка подлинности PHP is_numeric или preg_match 0-9 PHP Lang
Для меня это не большая проблема (насколько мне известно), это больше меня интересует. Но в чем основное отличие, если таковое имеется, – использовать is_numeric
поверх preg_match
(или наоборот) для проверки входных значений пользователя.
Я предполагаю, что оба делают то же самое, но есть ли какие-то конкретные различия, которые могут вызвать проблемы позже? Есть ли «лучший способ» или что-то, что я не вижу, что делает их разными.
is_numeric()
проверяет, является ли значение числом. Это не обязательно должно быть целым числом, но это может быть десятичное число или число в научной нотации.
В примере preg_match()
вы указали только те проверки, что значение содержит цифры от нуля до девяти; любое их число и в любой последовательности.
Обратите внимание, что регулярное выражение, которое вы указали, также не является идеальной цельной проверкой, как вы ее написали. [1-9][0-9]{0,15}$/
Это позволило бы содержать строку длиной от 1 до 16 цифр (т.е. первая цифра плюс 0-15 дополнительных цифр). Не стесняйтесь настраивать цифры в фигурных скобках в соответствии с вашими потребностями. Если вам нужна строка с фиксированной длиной, вам нужно указать только одно число в фигурных скобках.
Надеюсь, это поможет.
Согласно http://www.php.net/manual/en/function.is-numeric.php , is_numeric имеет нечто вроде «+ 0123.45e6» или «0xFF». Я думаю, это не то, что вы ожидаете.
preg_match может быть медленным, и вы можете иметь что-то вроде 0000 или 0051.
Я предпочитаю использовать ctype_digit (работает только со строками, это нормально с $ _GET).
<?php $id = $_GET['id']; if (ctype_digit($id)) { echo 'ok'; } else { echo 'nok'; } ?>
is_numeric () допускает любую форму номера. поэтому 1
, 3.14159265
, 2.71828e10
все «числовые», в то время как ваше регулярное выражение сводится к эквиваленту is_int()
is_numeric примет «-0. 5e + 12» в качестве действительного идентификатора.
Не совсем то же самое.
Из документов PHP is_numeric:
'42' is numeric '1337' is numeric '1e4' is numeric 'not numeric' is NOT numeric 'Array' is NOT numeric '9.1' is numeric
С вашим регулярным выражением вы проверяете только «базовые» числовые значения.
Также is_numeric()
должен быть быстрее.
is_numeric
проверяет больше:
Определяет, является ли данная переменная числовой. Числовые строки состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Таким образом, + 0123.45e6 является допустимым числовым значением. Также допускается шестнадцатеричное обозначение (0xFF), но только без знака, десятичной и экспоненциальной частей.
is_numeric проверяет, является ли это любым числом, в то время как ваше регулярное выражение проверяет, является ли оно целым числом, возможно, с ведущими 0. [1-9][0-9]*$/’; if (preg_match($expr, $id) && filter_var($id, FILTER_VALIDATE_INT)) { echo ‘ok’; } else { echo ‘nok’; }
Если вы только проверяете, является ли это числом, is_numeric()
здесь намного лучше. Это более читаемо и немного быстрее, чем регулярное выражение.
Проблема с вашим регулярным выражением здесь заключается в том, что она не даст десятичных значений, поэтому по существу вы только что is_int()
в regex. Регулярные выражения должны использоваться только тогда, когда на вашем входе имеется нестандартный формат данных; PHP имеет множество встроенных функций проверки, даже средство проверки электронной почты без регулярного выражения .
Функция is_numeric от PHP позволяет использовать как float, так и целые числа. В то же время функция is_int слишком строгая, если вы хотите проверить данные формы (только строки). Поэтому для этого вам обычно лучше всего использовать регулярные выражения. [0-9]+$/i», $phone)) { $errorMSG = ‘Invalid Number!’; $error = 1; }
Подборка шаблонов регулярных выражений — Блог о веб-разработке
В языке программирования, в частности PHP, регулярные выражения представляют из себя специальные записи «маски», с помощью которых может производиться анализ значений каких-либо переменных согласно установленному шаблону. Удобство использования регулярных выражений в скриптах играет существенную роль, так как программирование само по себе подразумевает работу с данными.
Теперь о том, где могут быть использованы регулярные выражения. К примеру, у вас на сайте есть какая либо форма, которая содержит некоторый набор полей, их предположительно должен заполнить пользователь, и отправить на сервер. На стороне сервера нужно проверять данные на корректность ввода, и тут могут пригодиться регулярные выражения. На самом деле регулярки, как их называют по-простому, могут использоваться в различных участках кода, там, где есть необходимость произвести анализ данных, для дальнейших манипуляций с ними. [a-f0-9]{32}$/’, $md5)){
echo ‘MD5 в порядке’;
} else {
echo ‘MD5 имеет недопустимый формат’;
}
Атрибут pattern | htmlbook.ru
Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS |
10.0 | 5.0+ | 9.6+ | 4.0+ | 2.3+ | 3.0+ |
Спецификация
HTML: | 3.2 | 4.01 | 5.0 | XHTML: | 1.0 | 1.1 |
Описание
Указывает регулярное выражение, согласно которому требуется вводить и проверять данные в поле формы. Если присутствует атрибут pattern, то форма не будет отправляться, пока поле не будет заполнено правильно.
Синтаксис
<input type="email" pattern="выражение">
<input type="tel" pattern="выражение">
<input type="text" pattern="выражение">
<input type="search" pattern="выражение">
<input type="url" pattern="выражение">
Значения
Некоторые типовые регулярные выражения перечислены в табл. [ 0-9]+$
Пример
HTML5IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Атрибут pattern</title>
</head>
<body>
<form>
<p>Введите телефон в формате 2-xxx-xxx, где вместо x
должна быть цифра:</p>
<p><input type="tel" pattern="2-[0-9]{3}-[0-9]{3}"></p>
<p><input type="submit" value="Отправить"></p>
</form>
</body>
</html>
Комплексное регулярное выражение для проверки номера телефона
Я бы также посоветовал взглянуть на библиотеку Google » libphonenumber «. Я знаю, что это не регулярное выражение, но он делает именно то, что вы хотите.
Например, он признает, что:
15555555555
это возможный номер, но не действительный номер. Он также поддерживает страны за пределами США.
Основные функциональные возможности:
- Разбор / форматирование / проверка телефонных номеров для всех стран / регионов мира.
getNumberType
— получает тип номера на основе самого номера; возможность различать фиксированные, мобильные, бесплатные, премиальные, общие, VoIP и персональные номера (когда это возможно).isNumberMatch
— получает уровень достоверности того, могут ли два числа быть одинаковыми.getExampleNumber
/getExampleNumberByType
— предоставляет действительные примеры номеров для всех стран / регионов, с возможностью указать, какой тип примера номера телефона требуется.isPossibleNumber
— быстро угадать, является ли номер возможным телефонным номером, используя только информацию о длине, намного быстрее, чем полная проверка.isValidNumber
— полная проверка номера телефона для региона с использованием длины и префикса информации.AsYouTypeFormatter
— форматирование телефонных номеров на лету, когда пользователи вводят каждую цифру.findNumbers
— находит числа при вводе текста.PhoneNumberOfflineGeocoder
— предоставляет географическую информацию, связанную с номером телефона.
Самая большая проблема с проверкой номера телефона — это очень культурная зависимость.
- Америка
(408) 974–2042
является действительным номером США(999) 974–2042
это не является допустимым количество США
- Австралия
0404 999 999
является действительным австралийский номер(02) 9999 9999
также действительный австралийский номер(09) 9999 9999
это не является допустимым австралийский номер
Регулярное выражение хорошо подходит для проверки формата телефонного номера, но на самом деле не удастся проверить правильность телефонного номера.
Я бы предложил пропустить простое регулярное выражение для проверки вашего телефонного номера и использовать такую библиотеку, как Google libphonenumber
(ссылка на проект GitHub) .
Используя один из более сложных примеров, 1-234-567-8901 x1234
вы получаете следующие данные libphonenumber
(ссылка на онлайн-демонстрацию) :
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() true
Formatting Results:
E164 format +12345678901
Original format (234) 567-8901 ext. 123
National format (234) 567-8901 ext. 123
International format +1 234-567-8901 ext. 123
Out-of-country format from US 1 (234) 567-8901 ext. 123
Out-of-country format from CH 00 1 234-567-8901 ext. 123
Таким образом, вы не только узнаете, является ли телефонный номер действительным (какой он есть), но также вы получите согласованное форматирование номера телефона в вашем регионе.
В качестве бонуса, libphonenumber
имеет ряд наборов данных для проверки правильности телефонных номеров, поэтому проверка числа, такого как +61299999999
(международная версия (02) 9999 9999
), возвращает в качестве действительного числа с форматированием:
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() true
Formatting Results
E164 format +61299999999
Original format 61 2 9999 9999
National format (02) 9999 9999
International format +61 2 9999 9999
Out-of-country format from US 011 61 2 9999 9999
Out-of-country format from CH 00 61 2 9999 9999
libphonenumber также дает вам много дополнительных преимуществ, таких как захват местоположения, в котором обнаружен номер телефона, а также получение информации о часовом поясе с номера телефона:
PhoneNumberOfflineGeocoder Results
Location Australia
PhoneNumberToTimeZonesMapper Results
Time zone(s) [Australia/Sydney]
Но неверный австралийский номер телефона ( (09) 9999 9999
) возвращает, что это не действительный номер телефона.
Validation Results
Result from isPossibleNumber() true
Result from isValidNumber() false
В версии Google есть код для Java и Javascript, но люди также реализовали библиотеки для других языков, которые используют набор телефонных номеров Google i18n:
Если вы не уверены, что вы всегда будете принимать номера из одной локали, и они всегда будут в одном формате, я настоятельно рекомендую не писать для этого свой собственный код и использовать libphonenumber для проверки и отображения телефонных номеров.
Автор: Halfwarr
Размещён: 26.03.2013 06:13
PHP Регулярное выражение / Regex: preg_match () | preg_replace ()
- На главную
Тестирование
- Назад
- Гибкое тестирование
- BugZilla
- Cucumber
- Тестирование базы данных счетчика
- 0003
- 9000 J3000 J3000
- 9000 J2
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества (ALM)
- RPA
- SAP Testing
- RPA TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- FICO
- HANA
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Tutorials
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
- Perl
js
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
- SQL
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
000
000
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Бизнес-аналитик
- Создание веб-сайта
- Облачные вычисления
- COBOL
- Встроенные системы
- 9000 Дизайн 9000 Эталон
- 900 Эталон
- 9000 Проектирование
900 Ethical
- Учебные пособия по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сеть
- Операционная система
- Назад
- Prep
900 04
Большие данные
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- DevOps Back
- DevOps Back
- HBase
- HBase2
- MongoDB
- NiFi
Сопоставление шаблонов регулярных выражений (RegEX) с функцией PHP preg_match () [Онлайн-демонстрация]
- Наши услуги
- Документооборот
- Adobe® PDF Creation
- Создание изображений / сканирование документов
- Сканирование OCR
- PDF-файлы с возможностью поиска
- Компьютеры и сети
- Поддержка настольных приложений
- Восстановление данных с жесткого диска
- Услуги компьютерных сетей
- Производительность
- Разработка базы данных
- Печать переменных данных
- Разработка веб-сайтов
- Показать все услуги
- Документооборот
- Технические новости
- Обучение
- Руководство по экологическим вычислениям
- Переработка расходных материалов
- Руководство системного администратора
- Модернизируйте свою ИТ-инфраструктуру для карантинной удаленной работы
- Простое решение для безопасного файлового сервера для SOHO
- Средства контроля физической безопасности для защиты вашей сети
- Простые шаги по защите беспроводной сети
- Предотвратить кражу данных — отключить порты USB
- Блокировать вредоносные серверы объявлений
- Принудительное шифрование TLS для безопасной электронной почты
- Что такое заголовок электронного сообщения?
- Анализ заголовков сообщений электронной почты
- Безопасные мобильные конечные точки с помощью политики мобильных устройств Microsoft 365
- Смартфон украден? Wipe It — удаленно
- Шифрование 7-Zip файлов
- Горячее, горячее и холодное резервное копирование данных — комплексное аварийное восстановление
- Ваш принтер — угроза нарушения безопасности?
- Надежно ли отправляются ваши электронные письма?
- Самошифрующиеся USB-накопители
- Инструменты командной строки Windows (CMD)
- Статьи, ссылки, инструкции
- Онлайн-инструменты
- Сетевые инструменты
- Доступность домена
- Поиск записи DNS
- Сетевой калькулятор IPv4
- Поиск WhoIs
- Поиск MAC-адреса
- Подробнее. ..
- Калькуляторы / Генераторы
- ASCII Art
- Счет за электричество / Калькулятор энергии
- Калькулятор ипотеки / амортизации
- Сетевые инструменты
Регулярные выражения — соответствие различным числам
Пример
[a-b]
, где a и b — цифры в диапазоне от 0
до 9
[3-7] будет соответствовать одной цифре в диапазоне от 3 до 7.
Соответствие нескольких цифр
\ d \ d будет соответствовать 2 последовательным цифрам
\ d + будет соответствовать 1 или более последовательным цифрам
\ d * будет соответствовать 0 или более последовательных цифр
\ d {3} будет соответствовать 3 цифрам подряд
\ d {3,6} будет соответствовать от 3 до 6 последовательных цифр
\ d {3,} будет соответствовать 3 или более цифрам подряд
\ d
в приведенных выше примерах можно заменить диапазоном номеров:
[3-7] [3-7] будет соответствовать двум последовательным цифрам, которые находятся в диапазоне от 3 до 7.
[3-7] + соответствует 1 или нескольким последовательным цифрам, которые находятся в диапазоне от 3 до 7.
[3-7] * будет соответствовать 0 или более последовательных цифр в диапазоне от 3 до 7.
[3-7] {3} будет соответствовать 3 последовательным цифрам в диапазоне от 3 до 7.
[3-7] {3,6} будет соответствовать от 3 до 6 последовательных цифр, которые находятся в диапазоне от 3 до 7.
[3-7] {3,} будет соответствовать 3 или более последовательных цифрам, которые находятся в диапазоне от 3 до 7.
Вы также можете выбрать конкретные цифры:
[13579] соответствует только "нечетным" цифрам
[02468] будет соответствовать только "четным" цифрам
1 | 3 | 5 | 7 | 9 другой способ сопоставления «нечетных» цифр - | символ означает ИЛИ
Соответствующие числа в диапазонах, содержащих более одной цифры:
\ d | 10 соответствует от 0 до 10 однозначных цифр ИЛИ 10.| символ означает ИЛИ
[1-9] | 10 соответствует цифрам от 1 до 10 в диапазоне от 1 до 9 ИЛИ 10
[1-9] | 1 [0-5] соответствует цифрам от 1 до 15 в диапазоне от 1 до 9 ИЛИ 1, за которым следует цифра от 1 до 5.
\ d {1,2} | 100 соответствует от 0 до 100, одна или две цифры, ИЛИ 100
Соответствующие числа, которые делятся на другие числа:
\ d * 0 соответствует любому числу, которое делится на 10 - любому числу, оканчивающемуся на 0
\ d * 00 соответствует любому числу, которое делится на 100 - любому числу, оканчивающемуся на 00
\ d * [05] соответствует любому числу, которое делится на 5 - любому числу, оканчивающемуся на 0 или 5
\ d * [02468] соответствует любому числу, которое делится на 2 - любому числу, оканчивающемуся на 0,2,4,6 или 8
совпадающих чисел, которые делятся на 4 — любое число, которое равно 0, 4 или 8 или заканчивается на 00, 04, 08, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92 или 96
[048] | \ d * (00 | 04 | 08 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 | 84 | 88 | 92 | 96)
Это можно сократить.Например, вместо 20 | 24 | 28
мы можем использовать 2 [048]
. Кроме того, поскольку 40-е, 60-е и 80-е имеют одинаковый узор, мы можем включить их: [02468] [048]
, а остальные тоже имеют узор [13579] [26]
. Таким образом, всю последовательность можно сократить до:
[048] | \ d * ([02468] [048] | [13579] [26]) - числа, делящиеся на 4
Сопоставление чисел, которые не имеют шаблона, подобного тем, которые делятся на 2,4,5,10 и т. Д., Не всегда может быть выполнено лаконично, и вам обычно приходится прибегать к диапазону чисел.Например, сопоставление всех чисел, которые делятся на 7 в диапазоне от 1 до 50, может быть выполнено простым перечислением всех этих чисел:
7 | 14 | 21 | 28 | 35 | 42 | 49
или ты мог бы сделать это так
7 | 14 | 2 [18] | 35 | 4 [29]
Сопоставление чисел с плавающей запятой с регулярным выражением
Этот пример показывает, как можно избежать распространенной ошибки, которую часто допускают люди, не знакомые с регулярными выражениями.В качестве примера мы попытаемся построить регулярное выражение, которое может соответствовать любому числу с плавающей запятой. Наше регулярное выражение также должно соответствовать целым числам и числам с плавающей запятой, где целая часть не указана. Мы не будем пытаться сопоставить числа с показателем степени, например 1,5e8 (150 миллионов в экспоненциальном представлении).
На первый взгляд кажется, что следующее регулярное выражение помогает: [- +]? [0-9] * \.? [0-9] *. Это определяет число с плавающей запятой как необязательный знак, за которым следует необязательная серия цифр (целая часть), за которой следует необязательная точка, за которой следует еще одна необязательная серия цифр (дробная часть).
Изложение регулярного выражения словами делает очевидным: все в этом регулярном выражении необязательно. Это регулярное выражение рассматривает отдельный знак или точку как допустимое число с плавающей запятой. Фактически, он даже считает пустую строку допустимым числом с плавающей запятой. Если вы попытаетесь использовать это регулярное выражение для поиска чисел с плавающей запятой в файле, вы получите совпадение нулевой длины в каждой позиции в строке, где нет числа с плавающей запятой.
Распространенная ошибка — не убежать от точки.Точка без экранирования соответствует любому символу, включая точку. Если бы мы не избежали точки, числа 4,4 и 4X4 считались бы числами с плавающей запятой.
При создании регулярного выражения важнее учитывать, что должно , а не совпадать, чем то, что должно. Вышеупомянутое регулярное выражение действительно соответствует правильному числу с плавающей запятой, потому что механизм регулярных выражений жадный. Но это также соответствует многим вещам, которые мы не хотим, и которые мы должны исключить.
Вот попытка получше: [- +]? ([0-9] * \.[0-9] + | [0-9] +). Это регулярное выражение соответствует необязательному знаку, за которым либо следует ноль или несколько цифр, за которыми следует точка и одна или несколько цифр (число с плавающей запятой с необязательной целой частью), либо за которым следует одна или несколько цифр (целое число) .
Это гораздо лучшее определение. Любое совпадение должно включать хотя бы одну цифру. Обойти часть [0-9] + невозможно. Мы успешно исключили совпадения, которые нам не нужны: совпадения без цифр.
Мы можем оптимизировать это регулярное выражение как: [- +]? [0-9] * \.[- +]? [0-9] * \.? [0-9] + ([eE] [- +]? [0-9] +)? $. Вы можете найти дополнительные варианты этих регулярных выражений в библиотеке RegexBuddy.
Сделайте пожертвование
Этот веб-сайт только что сэкономил вам поездку в книжный магазин? Сделайте пожертвование в поддержку этого сайта, и вы получите доступа без рекламы на этот сайт на срок !
PHP вычисления и примеры регулярных выражений
Вернуться к указателю справки
На этой странице много информации — используйте FIND (CTRL + F) .
Обратитесь в службу поддержки, если у вас есть вопросы.
Вот несколько реальных примеров вычислений PHP , используемых другими участниками Workflow Automations . Поскольку большинство типов полей в Podio обрабатывают данные по-разному, мы разделили наши вычисления по типам поля. Прокрутите до конца, чтобы увидеть Parsing примеров. Если вы хотите добавить в этот список, чтобы помочь другим пользователям, напишите по адресу [email protected]
(Примечание: маркеры поля Podio, выделенные синим цветом, должны быть сброшены в поле calc с помощью селектора маркеров.)
Список функций PHP , доступных для использования в Workflow Automations , см. В статье
Доступные токены и примеры расчетов:
Podio Код товара
Возвращает ID предмета Podio
При поиске дубликата в приложении убедитесь, что найден ссылочный идентификатор.
(Ref) Podio Item ID! = ""
Created (App) Podio Item ID:
Возвращает девятизначный номер элемента, который можно использовать в старом формате для ссылки Podio
Создайте URL-ссылку на элемент, созданный в потоке:
'https: // ORGANIZATION.podio.com/APP-NAME/item '. Создано (приложение) Podio ID
Осталось действий в час:
Возвращает количество действий, оставшихся в час на текущий момент
Проверить, доступно ли более 50 действий в час:
Действия, оставшиеся до этого часа> 50
Действия Осталось в месяц:
Возвращает стоимость действий, оставшихся в месяце на текущий момент
Проверить, доступно ли более 1000 действий в час:
Осталось действий в этом месяце> 1000
Текущая дата (Г-м-д):
Возвращает текущую дату
Отформатируйте текущую дату из ГГГГ-ММ-ДД в формат ММ-ДД-ГГГГ:
date ("m-d-Y", strtotime (current-date))
Текущая дата и время (Y-m-d H: i: s):
Возвращает текущую дату и время
Дата и время создания элемента:
Возвращает дату и время создания элемента в формате выше
.
Проверьте, не превышает ли текущая дата заданную дату:
strtotime (Дата и время создания элемента)> strtotime (2016-02-16)
Дата и время последнего обновления элемента:
Возвращает дату и время последнего обновления элемента в формате выше
Имя создателя предмета:
Возвращает имя пользователя, создавшего элемент
Проверьте, создало ли приложение элемент:
Имя создателя элемента == "Имя приложения"
Имя создателя редакции:
Возвращает имя пользователя, который выполнил последнее обновление элемента
Проверить, является ли Reviser конкретным пользователем
Имя создателя редакции == "John Doe"
Создатель предметов @ упоминание:
Используйте в комментарии к @mention создателя предметов
Используйте этот токен в комментарии
Item Creator @mention
Revision Creator @ упоминание:
Используйте в комментарии к @mention the Revision Creator
Используйте этот токен в комментарии
Revision Creator @mention
Код товара приложения Podio:
Возвращает уникальный идентификатор предмета
Идентификатор элемента приложения Podio (отформатированный):
Возвращает уникальный идентификатор предмета, заданный в настройках приложения Podio.
Podio Item Адрес электронной почты:
Возвращает адрес электронной почты инициирующих элементов для использования в электронном письме Podio к элементу.
Этот токен собирается владельцем ОСНОВНОЙ учетной записи и, следовательно, должен быть участником рабочей области.Создайте список адресов электронной почты из поля «Контакт» и адреса электронной почты Podio:
Контакт (электронная почта). ",". Адрес электронной почты Podio Item
Все комментарии:
Предоставляет список всех комментариев и время их появления
Копировать все комментарии в многострочное текстовое поле с сохранением предыдущего значения поля
Поле-токен."\ п". Все комментарии. "\ n"
Количество комментариев (#):
Этот жетон дает общее количество всех комментариев к элементу Podio
Используйте этот токен в тексте или вычислениях
Количество комментариев (#)
Позиция Все Список файлов:
Возвращает список имен файлов, находящихся в элементе Podio. ( Не загружено сторонними поставщиками )
Размещенные файлы элемента (-ов) HTTP-ссылки:
Возвращает разделенный запятыми список ссылок на файлы, загруженные в Podio Item через сторонних поставщиков.
Самая последняя ошибка автоматизации рабочего процесса:
Возвращает ошибку, сгенерированную при попытке потока выполнить действия
Расчет базового фильтра
Определите, пусто ли поле Podio :
field-token == ""
Определите, НЕ пусто ли поле Podio :
field-token! = ""
Отлично подходит для потоков, которые запускаются по дню или дате
Определите, является ли неделя с нечетным номером, когда срабатывает поток:
(date ("W") / 2)! = (Intval (date ("W") / 2))
Определите, равен ли сработавший день месяца 1:
date ("j") == "1"
Определите, равен ли день недели, в который сработал триггер, понедельнику:
date ("D") == "Mon"
Определите, произошло ли срабатывание триггера между 10:00 и 18:00:
дата ("H")> 10 && date ("H") <18 && date ("N") <6
Расчетное поле Podio:
Отформатируйте поле вычисления для удаления HTML:
strip_tags (Calc-Field)
ИЛИ удалите HTML и лишнее пространство:
обрезать (strip_tags (Calc-Field)
Категория Поле:
Поля категорий с множественным выбором возвращают список, разделенный запятыми.
Чтобы отменить установку поля категории :
NULL
или выберите Снять в раскрывающемся менюПодсчитать количество выбранных параметров в поле категории :
sizeof (разнести (",", поле категории))
Назначение нескольких значений полю категории :
"option1, option2, option3"
Добавьте запятые между Параметры категории при использовании этого поля в PDF-файле или по электронной почте:
str_replace (",", ",", поле категории)
Если Категория равна A, добавить взаимосвязь, но если нет, ничего не делать:
(Поле-категории == "A"? Поле-взаимосвязи: "")
Создать оператор IF с использованием поля Категория : (если оператор == true)? (истина): (ложь)
(поле категории == A)? (A): ((Категория-Поле == B)? (B): ((Категория-Поле == C)? (C): (false)))
Если Категория равна A, добавить отношение A, если оно равно B, добавить отношение B, но если другое, ничего не делать:
(Category-Field == "A"? Relationship-A-Field: ( Поле категории == "B"? Поле-отношения B: ""))
Проверьте, содержит ли поле категории с множественным выбором значение:
stristr (поле категории, «значение»)
Добавьте пробел между значениями из поля категории с множественным выбором :
str_replace (",", ",", поле категории)
Добавить флажок для каждого значения из поля Категория с множественным выбором :
((Category-Field! = "")? ("
".str_replace (",", "
", Поле категории)): (""))
Контактное поле:
Получить только имя поля контакта :
(strpos (поле контакта, ""))? (substr (поле контакта, 0, strpos (поле контакта, ""))): (поле контакта)
Получить только фамилию поля контакта :
substr (trim (Contact-Name-Field), strpos (trim (Contact-Name-Field), "") +1)
Получить полное имя поля контакта :
(strpos (Contact-Field, "(email:"))? (Substr (Contact-Field, 0, strpos (Contact-Field, "(email: "))): (Контактное поле)
Получите адрес электронной почты из поля контакта :
substr (substr (поле контакта, strpos (поле контакта, "(email:") +7), 0, strpos (substr (поле контакта, strpos (Контактное поле, "(email:") +7), ")"))
Добавьте поле «Контакт» «Назначено». Пользователь инициалов в начало текстового поля . :
substr (Contact-Field, 0,1).substr (Контактное поле, strpos (Контактное поле, "") +1,1). "". Текстовое поле
Получите идентификатор профиля из раскрывающегося меню пользователя:
Щелкните правой кнопкой мыши раскрывающееся меню пользователя и выберите Проверить , чтобы просмотреть исходный код и выбрать идентификатор профиляНазначьте несколько контактов , используя идентификаторы профиля, разделенные запятыми:
идентификатор профиля № 1, идентификатор профиля 2
например: 9834623,9834572
Поле даты:
Получить элементы с февралем в поле даты «Дата выполнения» :
date («m», strtotime (Date (Start) -Field)) == «02»
Проверить, находится ли поле даты на текущей неделе:
date ("W") == date ("W", strtotime (Date-Field))
Format A Поле даты как YYYY-MM-DD и удалить отметку времени:
(Date (End) -Field == "")? (date ("Y-m-d")): (date ("Y-m-d", strtotime (Date (End) -Field)))
Получить время из поля даты в 12-часовом формате (например,9:30 утра):
date ("g: ia", strtotime (Date (Start) -Field))
Получить количество дней между 2 Поля даты с 1 десятичной запятой:
round (intval (strtotime (Date-Field-A) - strtotime (Date-Field-B)) / (60 * 60 * 24 ), 1)
Вычислите разницу между двумя полями даты с помощью «настраиваемой переменной»:
intval (strtotime (настраиваемая переменная) - strtotime (Date (Start) -Field)) / (60 * 60 * 24)
Добавьте 10 рабочих дней в поле даты , включая отметку времени:
date ("Y-m-d", strtotime (Date-Field.«+10 будни»)). «00:00:00»
Добавить значение количества дней в числовом поле в поле даты :
date ("Ymd", strtotime (Date-Field. "+". Number-Field. "Days"))
Добавить Числовое поле Значение дней в Поле даты , даже если оно пусто:
Примечание. Не работает с датами начала | окончания
date ("Y-m-d", strtotime (Date-Field. "+". ((Number-Field == "")? (0) :( Number-Field))."дней"))
Чтобы узнать о других форматах даты, посетите php.net
Поле продолжительности:
Возвращает продолжительность в секундах.
Отформатируйте поле продолжительности от секунд до точных часов и минут:
intval (Duration-Field / 3600). "H". intval ((Поле длительности - (intval (Поле длительности / 3600) * 3600)) / 60). "м"
Поле электронной почты:
Возвращает список писем, разделенных запятыми.
Удалить заголовки электронной почты с адреса:
preg_replace ("/ (other | work | home): / ism", "", поле электронной почты)
Поле ссылки:
Отформатируйте URL-ссылку для отображения настраиваемого текста:
" Пользовательский текст". «»
Добавьте несколько URL-адресов в поле:
Link-A-Field. ",". Link-B-Field
Денежное поле:
Возвращает значение поля без нулей.Используйте поле Деньги (валюта) для отображения выбранной валюты.
Добавьте $ в начало поля Money :
"$". number_format (денежное поле, 2)
Добавьте запятые для разделителя тысяч в Денежное поле для использования в переменных
number_format (Money-Field, 2, '.', ',')
Создать оператор IF с использованием поля Money :
(floatval (Money-Field)> 0)? (floatval (Money-Field)): ("N / A")
Числовое поле:
Отформатируйте Числовое поле до 2 десятичных знаков:
number_format (Number-Field, 2)
Вычислить среднее значение для 3 различных числовых полей :
(Number-A-Field + Number-B-Field + Number-C-Field) / 3
Вычислить процент от 2 Числовых полей и округлить до 2 десятичных знаков:
round ((Number-A-Field / Number-B-Field) * 100, 2)
Телефонное поле:
Возвращает список телефонных номеров, разделенных запятыми.+) / ", Телефон-Поле, 1)
Или см. Ниже для получения дополнительной помощи по синтаксическому анализу с preg_match_gf.
Поле прогресса:
Возвращает только числовое значение
Поле отношений:
Добавьте новый элемент в поле без потери существующих ссылок:
Поле отношения (предыдущее значение). ",". Podio-Item-ID
Удалить элемент из поля отношения , оставив другие:
str_replace (Podio-Item-ID, "", поле отношения)
Подсчитать элементы в поле отношения :
(Поле отношения == "")? (0): (substr_count (Поле-отношения, ",") + 1)
Теги:
Возвращает список тегов Items, разделенных запятыми.
Текстовое поле:
Podio добавляет HTML в многострочные текстовые поля.
Получить 3-е слово из текстового поля :
current (array_slice (explode ("", Text-Field), 2))
Получить последнее слово из текстового поля :
substr (Text-Field, strrpos (Text-Field, ""))
Удалить HTML из Многострочное текстовое поле :
strip_tags_gf (текстовое поле)
Добавьте текущую дату, время и текст заголовка элемента к другому текстовому полю :
дата («д / м / г H: i»).«-». Текстовое поле
Определите, совпадает ли текстовое поле с текущим Items ‘:
(Text-Field == (Ref) Text-Field)
Определите, равны ли 2 (два) ссылочных поля Текстовое поле текущему Items :
((Ref) Text-Field-A == Text-Field-A) && ((Ref) Text- Поле-B == Текстовое поле-B)
Определить, содержит ли текстовое поле определенное слово
strpos (текстовое поле, 'слово')! == false
Соединить 2 Текстовых полей вместе (разделить пробелом):
Текстовое поле-A."". Текстовое поле-B
Соединить 2 Текстовых полей вместе (разделить символом возврата каретки):
Text-Field-A. "\ п". Текстовое поле-B
Добавьте поле «Контакт» «Назначено». Пользователь инициалов в начало текстового поля . :
substr (Contact-Field, 0,1). substr (Контактное поле, strpos (Контактное поле, "") +1,1). "". Текстовое поле
Анализ текста с помощью preg_match_gf ()
Совпадение общих символов
\ n = Новая строка
\ s = Любой пробельный символ
[0-9] = Только числа
[0-9-] = Числа и тире
[ az] = Только строчные буквы
[AZ] = Только прописные буквы
[a-zA-Z0-9] = Буквенно-цифровые совпадения
.* = Все символы (подстановочный знак)
Анализ телефонного номера (см. Пример регулярного выражения) :
Это приведет к удалению большинства форматов телефонных номеров (123-4567, 123.4567, 123 4567 и т. Д.)
preg_match_gf ("/ CallerID: \ n ([0- 9- \ s.] +) / Ism ", strip_tags_gf (текстовое поле), 1)
Разбор текста между двумя словами (см. Пример регулярного выражения) :
Это будет анализировать любой текст между словами
preg_match_gf ("/ Voice (. *) Message / ism", strip_tags_gf (Text-Field), 1)
Анализ текста в одной строке (см. Пример регулярного выражения) :
Обратите внимание, что выражение не заканчивается на / ism, а только на / i
preg_match_gf ("/ Address \ s: \ s (.*) / i ", strip_tags_gf (текстовое поле), 1)
Анализ текста между несколькими строками (см. Пример регулярного выражения) :
Использование strip_tags_gf превратит теги абзаца в \ n. Это означает, что вам необходимо учитывать эти новые разрывы строк.
preg_match_gf ("/ Дата: \ n (. *) \ N \ nNumber / ism", strip_tags_gf (текстовое поле), 1)
Назад к указателю справки
Классы символов | |
---|---|
.abc $ | начало / конец строки |
\ б | граница слова |
Экранированные символы | |
\. \ * \\ | экранированные специальные символы |
\ t \ n \ r | табуляция, перевод строки, возврат каретки |
\ u00A9 | unicode сбежал © |
Группы и поиск | |
(abc) | группа захвата |
\ 1 | обратная ссылка на группу № 1 |
(?: Abc) | группа без захвата |
(? = Abc) | положительный прогноз |
(?! Abc) | негативный прогноз |
Квантификаторы и чередование | |
а * а + а? | 0 или более, 1 или более, 0 или 1 |
а {5} а {2,} | ровно пять, два или больше |
a {1,3} | между одним и тремя |
а +? а {2,}? | совпадение как можно меньше |
ab | cd | соответствует ab или cd |
.
Добавить комментарий