Php урок 10. Использование цикла foreach

Автор: | 14.09.2015

Использование цикла foreach:

Конструкция foreach предоставляет простой способ перебора массивов. foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

  1. foreach (array_expression as $value) statement
  2. foreach (array_expression as $key => $value) statement

Первый цикл перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).

Второй цикл будет дополнительно соотносить ключ текущего элемента с переменной $key на каждой итерации.

Примеры работы с циклом:

<?
$names = ["Александр", "Алексей", "Артур", "Кирилл"];
$names_with_keys = ["Александр" =>"HTML Верстальщик", "Алексей" => "Программист", "Константин" => "Дизайнер", "Кирилл" => "SEO Специалист"];
foreach ($names as $name) {
  echo $name."<br>";
}
echo "<hr>";
foreach ($names_with_keys as $name => $who) {
  echo $name." - ".$who."<br>";
}
?>

 

 

Простой поисковик

<?
/*$str=file_get_contents("https://yandex.kz/search/?lr=164&msid=1482499324.38647.22901.11213&text=%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0");
echo $str;
$text=explode(">",$str); 
foreach($text as $domain)
{
  $d1=explode("<",$domain); 
  if(strpos($d1[0],".kz")>0)
  {
    if(filter_var("http://".$d1[0], FILTER_VALIDATE_URL))
      echo $d1[0]."<br>";
  }
}*/
$url="https://www.google.com/search?hl=en&site=imghp&tbm=isch&source=hp&biw=1024&bih=667&q=%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0&oq=%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0&gs_l=img.3..0l10.3851.7313.0.7490.17.11.3.2.2.0.187.1093.7j3.10.0....0...1ac.1.64.img..2.15.1115.MosgDsalpas";
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
//echo $result;
?>
<?
/*$str=file_get_contents("https://yandex.kz/search/?lr=164&msid=1482499324.38647.22901.11213&text=%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0");
echo $str;
$text=explode(">",$str); 
foreach($text as $domain)
{
  $d1=explode("<",$domain); 
  if(strpos($d1[0],".kz")>0)
  {
    if(filter_var("http://".$d1[0], FILTER_VALIDATE_URL))
      echo $d1[0]."<br>";
  }
}*/
mysql_connect("localhost","root","");
mysql_select_db("google");
$t=mysql_query("select * from domain where status=0 limit 1");
$r=mysql_fetch_array($t);
$start=rand(0,5)*20;
if(isset($r['domain']))
  {
  $url=$r['domain'];
  mysql_query("update domain set status=1 where status=0 limit 1");
  }
else
  $url="https://www.google.com/search?q=одежда&hl=en&biw=1024&bih=667&site=imghp&tbm=isch&ei=LTNdWIbzIYysswHGqZtI&start={$start}&sa=N";

$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
echo "Обрабатываем домен: ".$url;
echo "<hr>";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
$title=explode("</title>",explode("<title>",$result)[1])[0];
echo "<h1>".$title."</h1>";
$text=explode(">",$result); 
foreach($text as $domain)
{
  $d1=explode("<",$domain); 
  if(strpos($d1[0],"@")>0)continue;
  if(strpos($d1[0],".kz")>0 or  strpos($d1[0],".ru")>0 or strpos($d1[0],".com")>0 )
  {
    if(filter_var("http://".$d1[0], FILTER_VALIDATE_URL))
    {
      echo $d1[0]."<br>";
      mysql_query("insert into domain (domain) values ('{$d1[0]}')");
    }
  }
}
?>

 

Раздел: PHP