예전에 자동글쓰기 파일을 받아놓은적이있는데 사용하려고하니깐
사용을 잘되는데 원하는 닉네임과 원하는 제목으로 설정하고싶습니다
문제는 닉네임을 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 = '//*[@id="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개 / 댓글 6개
$wr_name = 뒤 부분을 주석처리 하시고, 배열정보의 array_rand 함수를 넣으세요.
답변에 대한 댓글 1개
<?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 = '//*[@id="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>
답변에 대한 댓글 3개
$html = "html1"; $secret=""; $mail = "";
↓
$html = "html1"; $secret="secret"; $mail = "";
[/code]
// 이렇게 변경을 해보세요.
$array_data = array("홍길동", "홍길순");
$array_rand = array_rand($array_data);
$wr_name = $array_data[$array_rand];
답변에 대한 댓글 1개
// 배열 정보선언
$array_data = array("홍길동", "홍길순");
$nick_name = array_rand($array_data);
// 배열로 데이터를 만드신 뒤 array_rand 함수로 그중에 하나를 가져옵니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
{
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만뜨네요