public function makeRequest(array $args, string $type) {
Здесь выполняете логику в зависимости от typeif($type === "source1") {
class SpecificTypeApiService implemets ApiServiceInterface
{
public function send()
{
//код ниже просто скопирован, стоит вынести что-то в параметры, что-то в конструктор и сделать код более элегантным
//можно сделать абстрактный класс и делегировать ему общий для разных type (сервисов) функционал
$proxiesArr = array('72.37.217.3:4145', '174.77.111.196:4145');
$randProx = array_rand($proxiesArr, 1);
$proxyIp = $proxiesArr[$randProx];
// $proxyIp = '174.77.111.196:4145';
$url1 = $args[0] . $args[1];
$headers = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.105 YaBrowser/21.3.3.230 Yowser/2.5 Safari/537.36'
];
$curl = curl_init();
curl_setopt($curl, CURLOPT_PROXY, $proxyIp);
curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_URL, $url1);
$result = curl_exec($curl);
if(curl_exec($curl) === false)
{
echo 'Ошибка curl: ' . curl_error($curl);
} else {
echo 'Операция завершена без каких-либо ошибок';
}
return $result;
}
}
public function makeRequest(array $args, ApiServiceInterface $apiService) {
$apiService->send();
Конструкция парсера незамысловата
Подскажите, пожалуйста, что можно сделать, чтобы спарсить информацию?
<meta property="og:site_name" content="SQLIZE.online">
<meta property="og:type" content="website">
<meta property="og:title" content="*************"/>
<meta property="og:description" content="Share SQL shapshot" />
<meta property="og:url" content="https://SQLIZE.online/favicons/sqlize/android-chrome-192x192.png" />
<meta property="og:image:secure_url" itemprop="image" content="https://SQLIZE.online/favicons/sqlize/android-chrome-192x192.png" />
<meta property="og:image" itemprop="image" content="https://SQLIZE.online/favicons/sqlize/android-chrome-192x192.png" />
<meta property="og:image:width" content="566" />
<meta property="og:image:height" content="300" />
<meta property="og:image:type" content="image/png" />
<meta property="og:updated_time" content="1679498154" />
<?php
class Node
{
public $data;
public $next;
function __construct($data, $next = null)
{
$this->data = $data;
$this->next = $next;
}
}
class LinkedList{
public $head = null;
public function push(Node $node){
if($this->head == null){
$this->head = $node;
return $this;
}
$current = $this->head;
while($current->next != null) {
$current = $current->next;
}
$current->next = $node;
return $this;
}
public function cut(int $index){
if($index == 0){
$this->head = $this->head->next;
return $this;
}
$i = 0;
$previous = null;
$current = $this->head;
do {
if($i == $index){
$previous->next = $current->next;
return $this;
}
$previous = $current;
$i++;
}while(($current = $current->next) != null);
throw new Exception('Надо эксепшен что бы out of bounds');
}
public function printList()
{
if(!$this->head){
echo 'empty list'.PHP_EOL;
return $this;
}
$current = $this->head;
echo $current->data.' -> ';
while (($current = $current->next)) {
echo $current->data;
if($current->next) {
echo ' -> ';
}
}
echo PHP_EOL;
return $this;
}
}
$linkedList = new LinkedList();
$linkedList
->push(new Node('Ari'))
->push(new Node('Malcolm'))
->push(new Node('Pete'))
->push(new Node('Ricky'))
->push(new Node('Sean'));
$linkedList
->printList()
->cut(2)
->printList()
->cut(1)
->printList()
->cut(10);
$elements = $xpath->query('//div[contains(@class,"versions")]');
foreach ($elements as $contextNode) {
$versionsItemNode = $xpath->query('//a[contains(@class,"versions-item")]', $contextNode);
}
foreach ($tmp as $key => $value) {
...
$objWriter->save('helloWorld.docx');
}