PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (1): [1]
Найдено сообщений: 15
Няшик
Отправлено: 11 Апреля, 2016 - 14:45:02 • Тема: Что означает выражение "$value= $value ?? 0;"? • Форум: Вопросы новичков
Ответов: 14 Просмотров: 638
[quote=armancho7777777][/quote]
А кто веляет??? Ты привёл пример не эквивалентному второму. Тут я и написал, почему не ISSET
И вот тебе пример в реальной работе с твоим `??` и `?:`
http://sandbox[dot]onlinephpfunction[dot][dot][dot]c666c99cc0f949a8
PHP:
скопировать код в буфер обмена
$var = 'Test' ;
$r [ ] = $var ?? 'Эх!' ; // Test
$r [ ] = ! $var ?? 'Эх!' ; // FALSE
// Иии
$r [ ] = $var ?: 'Эх!' ; // Test
$r [ ] = ! $var ?: 'Эх!' ; // 'Эх!'
Я изначально думал что она идентичная, но когда попробовал в работе, выяснилась что это "ЭХ!" никогда не будет получена
Следовательно ?? - НАХЕР НЕ НУЖНА если мне надо, я буду использовать всегда ?: И из примера выше, понятно почему. И вам советую. И советую ТС
Няшик
Отправлено: 11 Апреля, 2016 - 13:44:17 • Тема: Что означает выражение "$value= $value ?? 0;"? • Форум: Вопросы новичков
Ответов: 14 Просмотров: 638
А чего это мы isset не написали для первой переменной ???
ВО ПЕРВЫХ
Во вторых
Следовательно оператор `??` Либо написан от балды, и хрен знает зачем! Либо работает неправильно...
Нахрен он вообще нужен?? Если он никогда не вернёт - то, что мы задали
Няшик
Отправлено: 11 Апреля, 2016 - 07:37:02 • Тема: Запрос циклом - правильно ли это? • Форум: Работа с сетью
Ответов: 3 Просмотров: 1339
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
class SendAuthVk {
private static $User ;
private static $IsAuth = false ;
static $client_id = 4961926 ;
static $FileCOOKIE = 'SendVk.cookie' ;
static $USERAGENT = 'Mozilla/5.0 (Windows NT 6.3; rv:38.0) Gecko/20100101 Firefox/38.0' ;
/**
Function - Запрашивает авторизацию
string $Login - Логин
string $Pass - Пароль
return BOOL - В случае удаче true иначе false
**/
public static function Auth( $Login , $Pass ) {
self :: $User = null ;
self :: $IsAuth = false ;
CURLOPT_USERAGENT => self :: $USERAGENT ,
CURLOPT_FOLLOWLOCATION => true ,
CURLOPT_RETURNTRANSFER => true ,
CURLOPT_SSL_VERIFYPEER => false ,
CURLOPT_COOKIEFILE => self :: $FileCOOKIE )
) ;
return false ;
}
curl_setopt ( $Vk , CURLOPT_URL
, 'http://oauth.vk.com/authorize?client_id=' . self :: $client_id . '&scope=2079999&redirect_uri=https://oauth.vk.com/blank.html&display=wap&response_type=token' ) ;
return false ;
}
self :: $User = $Url ;
self :: $IsAuth = true ;
return true ;
}
return false ;
}
/**
Function - Возвращает массив [access_token, expires_in, user_id]
Или одну из указанных ячеек.
string $Key - Ключ ячейки из массива [access_token, expires_in, user_id] или вернет все сразу
return Array\string
**/
public static function User( $Key = null ) {
return ( $Key === null ) ? self :: $User : self :: $User [ $Key ] ;
}
/**
Function - Устанавливает UserAgent запроса, либо получает
RETURN Void\String
**/
public static function UserAgent( $UserAgent = null ) {
if ( $UserAgent === null )
return self :: $USERAGENT ;
else
self :: $USERAGENT = $UserAgent ;
}
/**
Function - Устанавливает клиент авторизации, либо получает
RETURN Void\String
**/
public static function Client_Id( $client_id = null ) {
if ( $client_id === null )
return self :: $client_id ;
else
self :: $client_id = $client_id ;
}
/**
Function - Устанавливает куки запроса, либо получает
RETURN Void\String
**/
public static function FileCookie( $FileCookie = null ) {
if ( $FileCookie === null )
return self :: $FileCOOKIE ;
else
self :: $FileCOOKIE = $FileCookie ;
}
/**
Function - Проверят, авторизован ли пользователь
RETURN BOOL
**/
public static function IsAuth( ) {
return self :: $IsAuth ;
}
}
Няшик
Отправлено: 11 Апреля, 2016 - 07:08:36 • Тема: preg_match • Форум: Вопросы новичков
Ответов: 1 Просмотров: 145
PHP:
скопировать код в буфер обмена
'923.6 MB (966,368,256 bytes)' ,
'9.6 MB (966,368,256 bytes)' ,
) ;
echo 'Кол-во элементов: ' . $Count . _BR_;
foreach ( $Arr as $i => $Value ) {
$elem = 'Элемент номер №' . $i ;
preg_match ( '/([0-9]*(?:[\.]*[\.][0-9]*|))\s{1,}([MB|KB]++)\s{1,}\((.*)\)/' , $Value , $v ) ; echo $elem . ' - ' . $v [ 1 ] . ' : ' . $v [ 3 ] . ' - ' . $v [ 2] . _BR_;
}
Регулярные выражения надо подучить
Няшик
Отправлено: 10 Апреля, 2016 - 20:38:54 • Тема: Shell - Cmd • Форум: Вопросы новичков
Ответов: 2 Просмотров: 135
Viper пишет: с этого места поподробнее.
Создать поток, с возможностью читать его...
Viper пишет: мб нужно вывод на экран направить?
Неа, желательно в коллбэк на подобие CURLOPT_PROGRESSFUNCTION у CURL тока для shell
Ну если углубиться, то можно и без этого коллбэка, в дебрях кода через подобные функции feof и fread .... Я мало себе представляю как это сделать именно для shell
(Добавление)
Окей, у меня получилось
Самое главное что в документации сказано что третий элемент массива по счёту, это stderr Но однако в него результат и падает -_-
Вопрос решён
Няшик
Отправлено: 10 Апреля, 2016 - 20:31:02 • Тема: Функция поиск элемента массива • Форум: Вопросы новичков
Ответов: 10 Просмотров: 609
PHP:
скопировать код в буфер обмена
Function ListElementInArray( $Array , $IsElem ) {
foreach ( $Array as $key => $value ) {
if ( $value === $IsElem ) $List [ $key ] = $value ;
}
return $List ;
}
}
$Elements = array ( 'Tolstoy_1' , 'Pyshkin' , 'Sholohow' , 'Timati' , 'Tolstoy_1' ) ; $Element = 'Tolstoy_' . rand ( 0
, 1
) ;
$Test = ListElementInArray( $Elements , $Element ) ;
if ( empty ( $Test ) ) { // Не пустой ли массив ?? // Пустой гад! Выводим
echo $Element . ' not found' ;
} else {
// В этом блоке печатаем всё найденное
foreach ( $Test as $idx => $elm ) {
echo 'Нашёл ' . $elm . ' на индексе: ' . $idx . PHP_EOL;
}
}
Няшик
Отправлено: 10 Апреля, 2016 - 20:12:51 • Тема: Shell - Cmd • Форум: Вопросы новичков
Ответов: 2 Просмотров: 135
Вообщем нужно выполнить Shell так что бы процесс можно было контролировать, так как если мы пробуем обычным способом `` или shell_exec то ничего не выводит.
Если пробовать через cmd.exe то там выводит такую информацию
"101 KB/s (3613 bytes in 0.034s)"
и эта информация меняется вплоть до окончания сего процесса
Предполагаю что это popen\proc_open но у меня ничего с ними не вышло
Няшик
Отправлено: 20 Февраля, 2016 - 14:42:10 • Тема: Разбить текст, по запятым • Форум: Регулярные выражения
Ответов: 2 Просмотров: 364
Нужно регулярными условиями создать похожий алгоритм
PHP:
скопировать код в буфер обмена
$Scob = false ;
foreach ( str_split ( 'p f, dd*(erge, erg), hrth' ) as $v ) { if ( $v == '(' )
$Scob = true ;
elseif ( $v == ')' )
$Scob = false ;
if ( $v == ',' and ! $Scob ) {
$ArgsI ++;
} else
$ArgPars [ $ArgsI ] .= $v ;
}
Результат
Дело в том что я вообще не представляю как такое провернуть регулярными условиями, хотя с рекурсией знаком на среднем уровне
Няшик
Отправлено: 20 Февраля, 2016 - 13:18:24 • Тема: Побитовые операции • Форум: Вопросы новичков
Ответов: 3 Просмотров: 173
T1grOK пишет: Битовый сдвиг в PHP не гарантирует преобразование к первоначальному состоянию.
Печаль хотел сделать расшифровку, которая прекрасно работает на c++ или на JS
Няшик
Отправлено: 19 Февраля, 2016 - 22:03:39 • Тема: Побитовые операции • Форум: Вопросы новичков
Ответов: 3 Просмотров: 173
Куда делись пару байт ?
PHP:
скопировать код в буфер обмена
$S [ 0] [ 1] = 30716 >> 1 ; # = 15358
$S [ 0] [ 2] = $S [ 0] [ 1] >> 1 ; # = 7679
$S [ 0] [ 3] = ( ( $S [ 0] [ 2] >> 1) ^ 0xA001) ; # = 44798
$S [ 1] [ 1] = ( 0xA001 ^ $S [ 0] [ 3] ) << 1 ; # = 7678
$S [ 1] [ 2] = $S [ 1] [ 1] << 1 ; # = 15356
$S [ 1] [ 3] = $S [ 1] [ 2] << 1 ; # = 30712
Видим что я даю 30716 а результат 30712
Страниц (1): [1]
Powered by ExBB FM 1.0 RC1. InvisionExBB