Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [PHP] preg_match_all -- возврат рандомного массива (https://forum.antichat.xyz/showthread.php?t=149772)

Dark_Scorpicore 20.10.2009 17:40

[PHP] preg_match_all -- возврат рандомного массива
 
Короче есть регулярка, т.к. она находится в функции, необходимо чтобы каждый раз разные значения ложились в РАЗНЫЕ массивы. Сделал рандомизацию (в коде обозначена как rand_str).
Так вот, регулярка ложит в массив значения. Каким образом можно получить масссив, куда она ложит значения?
Напомню, ф-ия в preg_match_all стандартном виде выглядит так:

preg_match_all(шаблон, где ищем, КУДА ЛОЖИМ) -- здесь КУДА ЛОЖИМ должен быть всегда разным, чтобы функция имела смысл. Иначе, она будет всё складывать в один массив.

моя функция:
PHP код:

function grab_regexp($inf$pattern)
{
preg_match_all($pattern$inf$array.rand_str(2"_012"));
##собственно вот эту $array.rand_str(2, "_012") и необходимо получить ##при каждом выполнении функции
return $array;



Gifts 20.10.2009 22:34

Dark_Scorpicore долго читать про область видимости переменных и забыть про онанизм с rand_str

Pashkela 20.10.2009 23:16

например так:

PHP код:

<pre>
<?php
@set_time_limit(0); 
@
ini_set("display_errors","1");

function 
grab_regexp($pattern,$inf) {
     
preg_match($pattern$inf$array);
     return 
$array
}

$str "this123 some12 text12 as4 192.145.85.123 and wil12 posisble 111.222.333.444";
$pat'/([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/is';  
$i 0;
while (
$i<3) {
   
$a[$i] =  grab_regexp($pat,$str);
   echo 
$a[$i][1] . "\n";
   
$str str_replace($a[$i][1],"",$str);
   
$i++;
}   
?>
</pre>

т.е. функция стандартная, а вот её применять её просто нужно правильно, тогда и массивы будут разные, и нерандомные названия, и к ним всегда можно будет обратиться

m0Hze 21.10.2009 00:24

Цитата:

Сообщение от Dark_Scorpicore
Короче есть регулярка, т.к. она находится в функции, необходимо чтобы каждый раз разные значения ложились в РАЗНЫЕ массивы. Сделал рандомизацию (в коде обозначена как rand_str).
Так вот, регулярка ложит в массив значения. Каким образом можно получить масссив, куда она ложит значения?
Напомню, ф-ия в preg_match_all стандартном виде выглядит так:

preg_match_all(шаблон, где ищем, КУДА ЛОЖИМ) -- здесь КУДА ЛОЖИМ должен быть всегда разным, чтобы функция имела смысл. Иначе, она будет всё складывать в один массив.

моя функция:
PHP код:

function grab_regexp($inf$pattern)
{
preg_match_all($pattern$inf$array.rand_str(2"_012"));
##собственно вот эту $array.rand_str(2, "_012") и необходимо получить ##при каждом выполнении функции
return $array;



Ох я чуть мозг несломал,пока непонял почему в один и тотже массив будет писать функция.Но когда понял это,я понял еще и что кое кто тут ***** и нечитает книжки.


Время: 10:57