December 28, 2015 · PHP
preg_match example
it return array.
$idioms = array();
$pattern = '/<i>.+<\/i>\n<m>.*<\/m>\n<s>.*<\/s>\n<e>.*<\/e>/';
$sourceFile = file_get_contents(database_path(). '/migrations/initdata.txt');
preg_match_all($pattern,$sourceFile,$idioms);
foreach ($idioms[0] as $idiom){
$pattern = '/<i>.+<\/i>/';
preg_match($pattern,$idiom ,$wording);
$pattern = '/<m>.*<\/m>/';
preg_match($pattern,$idiom ,$meaning);
$pattern = '/<s>.*<\/s>/';
preg_match($pattern,$idiom ,$source);
$pattern = '/<e>.*<\/e>/';
preg_match($pattern,$idiom ,$example);
$wording = str_replace('<i>','',$wording);
$wording = str_replace('</i>','',$wording);
$meaning = str_replace('<m>','',$meaning);
$meaning = str_replace('</m>','',$meaning);
$source = str_replace('<s>','',$source);
$source = str_replace('</s>','',$source);
$example = str_replace('<e>','',$example);
$example = str_replace('</e>','',$example);
// str_random(10)
DB::table('idioms')->insert([
'wording' => $wording[0],
'meaning' => $meaning[0],
'source' => $source[0],
'example' => $example[0]
]);