자동글쓰기 문의

자동글쓰기 문의

QA

자동글쓰기 문의

본문

예전에 자동글쓰기 파일을 받아놓은적이있는데 사용하려고하니깐

사용을 잘되는데 원하는 닉네임과 원하는 제목으로 설정하고싶습니다

문제는 닉네임을 1000개 정도 넣어놓고 그중에 랜덤하게 나오게끔 하려고합니다

제목은 10개중에 한개 랜덤으로 나오게 설정하고싶은데 어떻게 해야하나요?

 

 

<?php
    header('Content-Type: text/html; charset=utf-8');
?>

<!DOCTYPE html>
<head>
    <meta charset="utf-8">
</head>

<body>
<html>
<?php
    ini_set('display_errors', '0'); // 에러를 출력하지 않습니다.
    define('_INDEX_', true);
    include_once('./_common.php');

function board_write($bo_table, $subject, $content, $mb_id) // 글 생성 함수입니다.
{
    global $g5;
    $mb = get_member($mb_id); 
    $write_table = "g5_write_{$bo_table}";
    $wr_num = get_next_num($write_table);
    $wr_reply = '';
    $ca_name = "";
    $html = "html1"; $secret=""; $mail = "";
    $wr_subject = addslashes(trim($subject));
    $wr_content = addslashes(trim($content));
    $wr_link1 = "";
    $wr_link2 = "";
    $wr_email = "";
    $wr_name = addslashes($bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick]);
  
    $sql = " insert into $write_table
                     set wr_num = '$wr_num',
                     wr_reply = '$wr_reply',
                     wr_comment = 0,
                     ca_name = '$ca_name',
                     wr_option = '$html,$secret,$mail',
                     wr_subject = '$wr_subject',
                     wr_content = '$wr_content',
                     wr_link1 = '$wr_link1',
                     wr_link2 = '$wr_link2',
                     wr_link1_hit = 0,
                     wr_link2_hit = 0,
                     wr_hit = 0,
                     wr_good = 0,
                     wr_nogood = 0,
                     mb_id = '$mb_id',
                     wr_password = '',
                     wr_name = '$wr_name',
                     wr_email = '$wr_email',
                     wr_homepage = '',
                     wr_datetime = '".G5_TIME_YMDHIS."',
                     wr_last = '".G5_TIME_YMDHIS."',
                     wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                     wr_1 = '',
                     wr_2 = '',
                     wr_3 = '',
                     wr_4 = '',
                     wr_5 = '',
                     wr_6 = '',
                     wr_7 = '',
                     wr_8 = '',
                     wr_9 = '',
                     wr_10 = '' ";
    sql_query($sql);
    $wr_id = sql_insert_id();
    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
    sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '$mb_id' ) ");
    sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
    return true;
}
 

function parsehtml($site_url) { // curl을 이용하여 사이트를 불러오는 함수입니다.
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $site_url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
    curl_setopt ($ch, CURLOPT_HEADER, 0); 
    curl_setopt ($ch, CURLOPT_TIMEOUT, 10); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    $html = curl_exec($ch);
    curl_close($ch);
    return $html;
}


function maxim() { // 명언 CSV 파일에서 명언을 랜덤하게 하나 불러오는 함수입니다.
    $lines = file('g5_maxim.txt', FILE_IGNORE_NEW_LINES);
    $randint = mt_rand(0, count($lines)-1);
    return $lines[$randint];
}


function get_img_src($site_url) { // img 태그에서 src 속성을 불러오는 함수입니다.
    $html2 = parsehtml($site_url);
    $doc = new DOMDocument();
    $doc->loadHTML($html2);
    $xpath = new DOMXPath($doc);
    $query = '//*[="img1"]';
    $src = $xpath->query($query);
    $img_url = $src[0]->getAttribute('src');
    return $img_url;
}


$mb_id = 'admin'; // 글을 생성할 때 사용할 id를 입력합니다. 없는 id의 경우 공백으로 처리될 수 있습니다.
$bo_table = $_POST['select_table'];
$number = $_POST['number'];
$check = $_POST['check_image'];

if ($number < 1) {
    echo '<br>'.'양수값을 입력해야 합니다.';
} else {
    if ($check ==! 'no_image') { // 이미지를 불러오는 경우입니다.
        $html1 = parsehtml('https://m.search.naver.com/search.naver?where=m_image&sm=mtb_jum&query=트와이스');
        preg_match('|<div.class..timeline.thumb(.*)div>|U', $html1, $div1);
        preg_match_all('|main.read.nhn.(.*)\"|U', $div1[0], $hrefs, PREG_PATTERN_ORDER);
        $result = array();
        for ($p=1; $p <= $number; $p++) {
            $randint = mt_rand(0, count($hrefs[1]));
            $site_url = 'https://entertain.naver.com/read?'.$hrefs[1][$randint];
            $img_url = get_img_src($site_url);
            $img_tag = '<img src = "'.$img_url.'"><br><br>';
            $source = '출처 : '.$site_url.'<br><br>'; // 이미지의 출처를 표시합니다.
            $text = maxim();
            $temp = explode('-', $text); // 제목은 명언에 포함된 성명으로 합니다.
            $subject = trim($temp[count($temp) - 1]);            
            $content = $img_tag.$source.$text.'<br><br> 테스트 목적으로 작성된 글입니다.';
            $result = board_write($bo_table, $subject, $content, $mb_id);
        }
    } else { // 원칙적으로 이미지 없이 텍스트로만 작성합니다.
        for ($p=1; $p <= $number; $p++) {
            $text = maxim();
            $temp = explode('-', $text); // 제목은 명언에 포함된 성명으로 합니다.
            $subject = trim($temp[count($temp) - 1]);
            $content = $text.'<br><br> 테스트 목적으로 작성된 글입니다.';
            $result = board_write($bo_table, $subject, $content, $mb_id);
        }
    }
    echo '<br>'.$bo_table.' 게시판에 '.$number.'개의 게시글을 생성하였습니다.';
}
?>
</html>

이 질문에 댓글 쓰기 :

답변 4

$wr_name = 뒤 부분을 주석처리 하시고, 배열정보의 array_rand 함수를 넣으세요.

function board_write($bo_table, $subject, $content, $mb_id) // 글 생성 함수입니다.
{
    global $g5;
    $mb = get_member($mb_id);
    $write_table = "g5_write_{$bo_table}";
    $wr_num = get_next_num($write_table);
    $wr_reply = '';
    $ca_name = "";
    $html = "html1"; $secret=""; $mail = "";
    $wr_subject = addslashes(trim($subject));
    $wr_content = addslashes(trim($content));
    $wr_link1 = "";
    $wr_link2 = "";
    $wr_email = "";
    $array_data = array("홍길동", "홍길순");
    $wr_name = array_rand($array_data);;


이렇게 넣었더니 이름이 0 이랑 1만뜨네요


// 배열 정보선언
$array_data = array("홍길동", "홍길순");
$nick_name = array_rand($array_data);
 
// 배열로 데이터를 만드신 뒤 array_rand 함수로 그중에 하나를 가져옵니다.

// 이렇게 변경을 해보세요.
$array_data = array("홍길동", "홍길순");
$array_rand = array_rand($array_data);
$wr_name = $array_data[$array_rand];

<?php
    header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
</head>
<body>
<html>
<?php
    ini_set('display_errors', '0'); // 에러를 출력하지 않습니다.
    define('_INDEX_', true);
    include_once('./_common.php');
function board_write($bo_table, $subject, $content, $mb_id) // 글 생성 함수입니다.
{
    global $g5;
    $mb = get_member($mb_id);
    $write_table = "g5_write_{$bo_table}";
    $wr_num = get_next_num($write_table);
    $wr_reply = '';
    $ca_name = "";
    $html = "html1"; $secret=""; $mail = "";
    $wr_subject = addslashes(trim($subject));
    $wr_content = addslashes(trim($content));
    $wr_link1 = "";
    $wr_link2 = "";
    $wr_email = "";
    // $wr_name = addslashes($bo[bo_use_name] ? $mb[mb_name] : $mb[mb_nick]); // ★ 주석 처리
    static $wr_names = ['철수', '영희', '둘리','별명1', '별명2', '별명3']; // ★ 원하는 별명 추가
    shuffle($wr_names); // ★ 배열 섞기
    $wr_name = $wr_names[0]; // ★ 배열 첫 번째 값
 
    $sql = " insert into $write_table
                     set wr_num = '$wr_num',
                     wr_reply = '$wr_reply',
                     wr_comment = 0,
                     ca_name = '$ca_name',
                     wr_option = '$html,$secret,$mail',
                     wr_subject = '$wr_subject',
                     wr_content = '$wr_content',
                     wr_link1 = '$wr_link1',
                     wr_link2 = '$wr_link2',
                     wr_link1_hit = 0,
                     wr_link2_hit = 0,
                     wr_hit = 0,
                     wr_good = 0,
                     wr_nogood = 0,
                     mb_id = '$mb_id',
                     wr_password = '',
                     wr_name = '$wr_name',
                     wr_email = '$wr_email',
                     wr_homepage = '',
                     wr_datetime = '".G5_TIME_YMDHIS."',
                     wr_last = '".G5_TIME_YMDHIS."',
                     wr_ip = '{$_SERVER['REMOTE_ADDR']}',
                     wr_1 = '',
                     wr_2 = '',
                     wr_3 = '',
                     wr_4 = '',
                     wr_5 = '',
                     wr_6 = '',
                     wr_7 = '',
                     wr_8 = '',
                     wr_9 = '',
                     wr_10 = '' ";
    sql_query($sql);
    $wr_id = sql_insert_id();
    sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
    sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '$mb_id' ) ");
    sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
    return true;
}
 
function parsehtml($site_url) { // curl을 이용하여 사이트를 불러오는 함수입니다.
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $site_url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
    curl_setopt ($ch, CURLOPT_HEADER, 0);
    curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch);
    curl_close($ch);
    return $html;
}

function maxim() { // 명언 CSV 파일에서 명언을 랜덤하게 하나 불러오는 함수입니다.
    $lines = file('g5_maxim.txt', FILE_IGNORE_NEW_LINES);
    $randint = mt_rand(0, count($lines)-1);
    return $lines[$randint];
}

function get_img_src($site_url) { // img 태그에서 src 속성을 불러오는 함수입니다.
    $html2 = parsehtml($site_url);
    $doc = new DOMDocument();
    $doc->loadHTML($html2);
    $xpath = new DOMXPath($doc);
    $query = '//*[="img1"]';
    $src = $xpath->query($query);
    $img_url = $src[0]->getAttribute('src');
    return $img_url;
}

$mb_id = 'admin'; // 글을 생성할 때 사용할 id를 입력합니다. 없는 id의 경우 공백으로 처리될 수 있습니다.
$bo_table = $_POST['select_table'];
$number = $_POST['number'];
$check = $_POST['check_image'];
if ($number < 1) {
    echo '<br>'.'양수값을 입력해야 합니다.';
} else {
    if ($check ==! 'no_image') { // 이미지를 불러오는 경우입니다.
        $html1 = parsehtml('https://m.search.naver.com/search.naver?where=m_image&sm=mtb_jum&query=트와이스');
        preg_match('|<div.class..timeline.thumb(.*)div>|U', $html1, $div1);
        preg_match_all('|main.read.nhn.(.*)\"|U', $div1[0], $hrefs, PREG_PATTERN_ORDER);
        $result = array();
        for ($p=1; $p <= $number; $p++) {
            $randint = mt_rand(0, count($hrefs[1]));
            $site_url = 'https://entertain.naver.com/read?'.$hrefs[1][$randint];
            $img_url = get_img_src($site_url);
            $img_tag = '<img src = "'.$img_url.'"><br><br>';
            $source = '출처 : '.$site_url.'<br><br>'; // 이미지의 출처를 표시합니다.
            $text = maxim();
            $temp = explode('-', $text); // 제목은 명언에 포함된 성명으로 합니다.
            $subject = trim($temp[count($temp) - 1]);            
            $content = $img_tag.$source.$text.'<br><br> 테스트 목적으로 작성된 글입니다.';
            $result = board_write($bo_table, $subject, $content, $mb_id);
        }
    } else { // 원칙적으로 이미지 없이 텍스트로만 작성합니다.
        for ($p=1; $p <= $number; $p++) {
            $text = maxim();
            $temp = explode('-', $text); // 제목은 명언에 포함된 성명으로 합니다.
            $subject = trim($temp[count($temp) - 1]);
            $content = $text.'<br><br> 테스트 목적으로 작성된 글입니다.';
            $result = board_write($bo_table, $subject, $content, $mb_id);
        }
    }
    echo '<br>'.$bo_table.' 게시판에 '.$number.'개의 게시글을 생성하였습니다.';
}
?>
</html>
답변을 작성하시기 전에 로그인 해주세요.
전체 123,162 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT