2017-06-09 4 views
0

Frist von allen, das ist mein Code, so werfen Sie einen Blick :)PHP Schreibe Textdatei komplette Inhalt

<form method="POST"> 
    <input name="link"> 
    <button type="submit">></button> 
</form> 
<title>GET IMAGES</title> 
<?php 
if (!isset($_POST['link'])) exit(); 
$link = $_POST['link']; 
echo '<div id="pin" style="float:center"><textarea class="text" cols="110" rows="50">'; 
function curl($link) 
{ 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $link); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
    $result = curl_exec($ch); 
    if(curl_errno($ch)){ 
     return FALSE; 
    } 
    return $result; 
} 
$get=array(); 

//GET TITLE 
    $get[$i] = curl($link); 
    if (preg_match_all('/">(.*?)<\/a><\/h1>/', $get[$i], $matches)) 
    foreach ($matches[1] as $title) 
    $data = "$title\n"; 
    echo $data; 

//GET IMAGES 
for($i=1;$i<=100;$i++) 
{ 
    if ($i == 1) $url = $link; 
    else $url = "$link?p=$i"; 
    $get[$i] = curl($url); 
    if (preg_match_all('/<img id="bigImg" src="(.*?)"/', $get[$i], $matches)) 
    { 
     foreach ($matches[1] as $content) { 
     $content = str_replace("//img","http://img",$content); 
     $data = "<img src=\"".$content."\" />"; 
     echo $data."\r\n"; 
     } 
    } 
    if (!substr_count($get[$i], '下一页')) break; 
} 
file_put_contents("1.txt","$data",FILE_APPEND | LOCK_EX); 
echo '</textarea>'; 
?> 

Die Ergebnisse i in das Textfeld angezeigt, wenn ich die URL wie folgt einreichen:

THIS IS A TITLE 
<img src="https://img.example.com/1.jpg"/> <img 
src="https://img.example.com/2.jpg"/> <img 
src="https://img.example.com/3.jpg"/> 

Aber wenn ich file_put_contents Funktion verwenden, um Textdatei zu schreiben, und ich öffne es das Ergebnis zu überprüfen, erhalte ich nur

<img src="https://img.example.com/3.jpg"/> 

Irgendwelche Ideen?

Antwort

2

Sie müssen an $data anhängen nicht überschreiben. Verwenden Sie $data .= nicht $data =, weil letzterer es überschreibt.

$data .= "<img src=\"".$content."\" />"; 
// ^append 
+0

Ja, ich habe diese Lösungen versuchen, aber ich denke, es ist ziemlich langsam :( – Enuma

+0

Haben Sie irgendwelche Ideen haben, um es schneller zu machen? – Enuma