{"id":307227,"date":"2020-07-20T21:00:25","date_gmt":"2020-07-20T21:00:25","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=307227"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=307227","title":{"rendered":"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0438\u0434\u0435\u043e \u0438\u0437 Tik Tok \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/511796\/\">\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c, \u0432\u0441\u0435\u043c \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044f\u043c habr. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0412\u0430\u043c\u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 Tik Tok \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043a\u0430\u043a PHP. <\/p>\n<p>  \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f Tik Tok \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0438 \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0443\u044e \u0441\u0442\u0430\u0442\u0435\u0439\u043a\u0443, \u0438 \u0442\u0430\u043a, \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u043b\u043e\u0432, \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u043b\u0430.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c TikTok, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438 \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e.<\/p>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434\u044b:<\/b><\/p>\n<ul>\n<li> cUrl (curl \u0437\u0430\u043f\u0440\u043e\u0441) <\/li>\n<li> redirectUrl (\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 redirect) <\/li>\n<li> getUrl (\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e) <\/li>\n<\/ul>\n<p>  <b>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/b><\/p>\n<ul>\n<li> public $url; <\/li>\n<\/ul>\n<p><a name=\"habracut\"><\/a><br \/>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 url \u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<pre><code class=\"php\">public function __construct (string $url) {     $this-&gt;url = $url; } <\/code><\/pre>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434 cUrl.<\/b> \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442.<\/p>\n<pre><code class=\"php\">private function cUrl (string $url) :? string {     $user_agent = 'Mozilla\/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit\/537.36 (KHTML,                     like  Gecko) Chrome\/79.0.3945.130 Safari\/537.36';     $curl            = curl_init($url);     curl_setopt_array($curl, [ \t\t\tCURLOPT_URL            =&gt; $url, \t\t\tCURLOPT_RETURNTRANSFER =&gt; TRUE, \t\t\tCURLOPT_FOLLOWLOCATION =&gt; TRUE, \t\t\tCURLOPT_USERAGENT      =&gt; $user_agent, \t\t\tCURLOPT_CONNECTTIMEOUT =&gt; 5, \t\t\tCURLOPT_TIMEOUT        =&gt; 10,     ]);      $response = curl_exec($curl);      if ($response === FALSE) { \tcurl_close($curl); \treturn NULL;     }      $httpCode = (int)curl_getinfo($curl, CURLINFO_HTTP_CODE);     curl_close($curl);     if ($httpCode !== 200)        return NULL;      return $response; } <\/code><\/pre>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434 redirectUrl<\/b><\/p>\n<pre><code class=\"php\">private function redirectUrl (string $url) :? string {     $ch = curl_init();      curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);      $headers = get_headers($url, 1);     return $headers['Location'] ?? NULL; } <\/code><\/pre>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434 getUrl.<\/b>  <\/p>\n<pre><code class=\"php\">public function getUrl () :? string {     \/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.     $responseHtml = $this-&gt;cUrl($this-&gt;url);      \/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e.     if (!preg_match('\/contentUrl\\\\&quot;:\\\\&quot;(.*?)\\\\&quot;,\\\\&quot;embedUrl\/ui', $responseHtml, $mInterUrl)) \tthrow new \\Exception('\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430!');      \/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0438\u0434\u0435\u043e \u0432 \u0432\u0438\u0434\u0435 bytecode     if (!$respByteVideo = $this-&gt;cUrl($mInterUrl[1]))         throw new \\Exception('\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0441\u044f!');      \/\/ \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u0441\u043a\u0430\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 utf-8.     $strByteVideo = mb_convert_encoding($respByteVideo, 'UTF-8', 'auto');      \/\/ \u0418\u0449\u0435\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 id \u0432\u0438\u0434\u0435\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441.     if (!preg_match('\/vid:(.*?)%\/sui', $strByteVideo, $mVideoId)) \tthrow new \\Exception('id video \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043e!');      \/\/ \u0423\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b.     $url = str_replace(&quot;\\0&quot;, '', $mVideoId[1]);      \/\/ \u0421\u0442\u0440\u043e\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430.     $url = &quot;https:\/\/api.tiktokv.com\/aweme\/v1\/playwm\/?video_id=$url&quot;;      \/\/ \u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u0430 redirect \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043a \u0432\u0438\u0434\u0435\u043e, \u0442\u043e \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 redirect     return $this-&gt;redirectUrl($url); } <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043a\u043b\u0430\u0441\u0441\u0430, \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u0432 \u043d\u0435\u0433\u043e \u0441\u0441\u044b\u043b\u043a\u0443.<\/p>\n<pre><code class=\"php\">$TikTok = new TikTok('https:\/\/www.tiktok.com\/@sonyakisa8\/video\/6828487583694163205?lang=ru'); echo $TikTok-&gt;getUrl(); <\/code><\/pre>\n<p>  \u0412\u0441\u0435 \u0433\u043e\u0442\u043e\u0432\u043e.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<ul>\n<li> <a href=\"https:\/\/www.tiktok.com\/@sonyakisa8\/video\/6828487583694163205?lang=ru\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u0441 \u0432\u043e\u0434\u044f\u043d\u044b\u043c \u0437\u043d\u0430\u043a\u043e\u043c<\/a> <\/li>\n<li> <a href=\"http:\/\/v16m.tiktokcdn.com\/aa5d505fe6144f6121a6b725bdf56116\/5f0f3b17\/video\/tos\/useast2a\/tos-useast2a-ve-0068c003\/fd36f79670e9429d9a6ef0f8915778d9\/?a=1180&amp;br=2384&amp;bt=1192&amp;cr=0&amp;cs=0&amp;dr=0&amp;ds=6&amp;er=&amp;l=202007151121220101152270600805E257&amp;lr=tiktok&amp;mime_type=video_mp4&amp;qs=0&amp;rc=ajZobHRmeWZ0dTMzNjczM0ApO2g6NTU2Z2RpN2hmaGYzOWdmMjA0a2BjZi5fLS01MTZzczZfYDNiNDRiLl5hMTAzX146Yw%3D%3D&amp;vl=&amp;vr=\" rel=\"nofollow\">\u0412\u0438\u0434\u0435\u043e \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430<\/a> <\/li>\n<\/ul>\n<p>  <b>\u0412\u0435\u0441\u044c \u043a\u043e\u0434 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/b><\/p>\n<pre><code class=\"php\">class TikTok {  \t\/** \t * @var string \t *\/ \tpublic $url;  \tpublic function __construct (string $url) { \t\t$this-&gt;url = $url; \t}  \t\/** \t * @return null|string \t * @throws Exception \t *\/ \tpublic function getUrl () :? string { \t\t\/\/ \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043a\u043e\u0434 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \t\t$responseHtml = $this-&gt;cUrl($this-&gt;url);  \t\t\/\/ \u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e \t\tif (!preg_match('\/contentUrl\\\\&quot;:\\\\&quot;(.*?)\\\\&quot;,\\\\&quot;embedUrl\/ui', $responseHtml, $mInterUrl)) \t\t\tthrow new \\Exception('\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430!');  \t\t\/\/ \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441 \u0438 \u0432 \u043e\u0442\u0432\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0438\u0434\u0435\u043e \u0432\u0432\u0438\u0434\u0435 bytecode \t\tif (!$respByteVideo = $this-&gt;cUrl($mInterUrl[1])) \t\t\tthrow new \\Exception('\u0417\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0441\u044f!');  \t\t\/\/ \u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043d\u0430\u0447\u0430\u043b\u043e \u0438\u0441\u043a\u0430\u0442\u044c, \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0432\u0435\u0441\u0442\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 utf-8 \t\t$strByteVideo = mb_convert_encoding($respByteVideo, 'UTF-8', 'auto');  \t\t\/\/ \u0418\u0449\u0435\u043c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 id \u0432\u0438\u0434\u0435\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430 \u0435\u0433\u043e \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \t\tif (!preg_match('\/vid:(.*?)%\/sui', $strByteVideo, $mVideoId)) \t\t\tthrow new \\Exception('id video \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0439\u0434\u0435\u043d\u043e!');  \t\t\/\/ \u0423\u0431\u0435\u0440\u0451\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \t\t$url = str_replace(&quot;\\0&quot;, '', $mVideoId[1]);  \t\t\/\/ \u0421\u0442\u0440\u043e\u0438\u043c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0432\u0438\u0434\u0435\u043e \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \t\t$url = &quot;https:\/\/api.tiktokv.com\/aweme\/v1\/playwm\/?video_id=$url&quot;;  \t\t\/\/ \u0422\u0430\u043a \u043a\u0430\u043a \u044d\u0442\u0430 redirect \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043a \u0432\u0438\u0434\u0435\u043e, \u0442\u043e \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0435\u0435 \u043f\u043e\u0441\u043b\u0435 redirect \t\treturn $this-&gt;redirectUrl($url); \t}  \t\/** \t * \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 url \u0430\u0434\u0440\u0435\u0441\u0430 \u043f\u043e\u0441\u043b\u0435 redirect \t * \t * @param string $url \t * @return null|string \t *\/ \tprivate function redirectUrl (string $url) :? string { \t\t$ch = curl_init();  \t\tcurl_setopt($ch, CURLOPT_URL, $url); \t\tcurl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  \t\t$headers = get_headers($url, 1); \t\treturn $headers['Location'] ?? NULL; \t}  \t\/** \t * @param string $url \t * @return null|string \t *\/ \tprivate function cUrl (string $url) :? string { \t\t$user_agent = 'Mozilla\/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/79.0.3945.130 Safari\/537.36'; \t\t$curl       = curl_init($url); \t\tcurl_setopt_array($curl, [ \t\t\tCURLOPT_URL            =&gt; $url, \t\t\tCURLOPT_RETURNTRANSFER =&gt; TRUE, \t\t\tCURLOPT_FOLLOWLOCATION =&gt; TRUE, \t\t\tCURLOPT_USERAGENT      =&gt; $user_agent, \t\t\tCURLOPT_CONNECTTIMEOUT =&gt; 5, \t\t\tCURLOPT_TIMEOUT        =&gt; 10, \t\t]);  \t\t$response = curl_exec($curl);  \t\tif ($response === FALSE) { \t\t\tcurl_close($curl); \t\t\treturn NULL; \t\t}  \t\t$httpCode = (int)curl_getinfo($curl, CURLINFO_HTTP_CODE); \t\tcurl_close($curl); \t\tif ($httpCode !== 200) \t\t\treturn NULL;  \t\treturn $response; \t} } <\/code><\/pre>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/511796\/\"> https:\/\/habr.com\/ru\/post\/511796\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/511796\/\">\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c, \u0432\u0441\u0435\u043c \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044f\u043c habr. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0412\u0430\u043c\u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0441 Tik Tok \u0431\u0435\u0437 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0442\u0430\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u043a\u0430\u043a PHP. <\/p>\n<p>  \u0412 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f Tik Tok \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0441\u0442\u044c \u0438 \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e \u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0443\u044e \u0441\u0442\u0430\u0442\u0435\u0439\u043a\u0443, \u0438 \u0442\u0430\u043a, \u043c\u0435\u043d\u044c\u0448\u0435 \u0441\u043b\u043e\u0432, \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0435\u043b\u0430.<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u043f\u043e\u0434 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c TikTok, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u0440\u0438 \u043c\u0435\u0442\u043e\u0434\u0430 \u0438 \u043e\u0434\u043d\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e.<\/p>\n<p>  <b>\u041c\u0435\u0442\u043e\u0434\u044b:<\/b><\/p>\n<ul>\n<li> cUrl (curl \u0437\u0430\u043f\u0440\u043e\u0441) <\/li>\n<li> redirectUrl (\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043f\u043e\u0441\u043b\u0435 redirect) <\/li>\n<li> getUrl (\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u0432\u0438\u0434\u0435\u043e) <\/li>\n<\/ul>\n<p>  <b>\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u0430:<\/b><\/p>\n<ul>\n<li> public $url; <\/li>\n<\/ul>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-307227","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307227","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=307227"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/307227\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=307227"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=307227"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=307227"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}