Разбейте несколько строк и введите их в отдельный ряд в базе данных - PullRequest
2 голосов
/ 21 октября 2010

Я пытаюсь создать скрипт php, который вводит ссылки HTTP, вставленные в текстовую область, в отдельную строку в базе данных. Точнее:

Первая страница, где текстовая область (name=textarea-linkfield), здесь будут вставлены ссылки

http://www.stackoverflow.com
http://www.yahoo.com
....
http://google.com

Ссылки переносятся в скрипт php с $linkfield=$_POST['textarea-linkfield'];, и я хотел бы, чтобы ссылки были вставлены в базу данных, каждая ссылка http в строке Имя базы данных: сайт, имя таблицы, плуг, столбцы: id, url, ...

L.E. Я попробовал в качестве доказательства концепции:

$linkfield=$_POST['textarea-linkfield'];
$strip=explode("\n",$linkfield);
echo $strip[1];

но я получаю 500 ОШИБКА ВНУТРЕННЕГО СЕРВЕРА

L.E.2

Ответ:

// Split the string into pieces
$pieces = explode("\n", str_replace(array("\n", "\r\n"), "\n", trim($linkfield)));

// Build the top of the INSERT query
$sql = "INSERT INTO `plow`(`url`) VALUES\n";

// Build the rest of the ;INSERT query by re-assembling the
// pieces.
$sql .= "('";
$sql .= implode("'), ('", $pieces);
$sql .= "')"; 
mysql_query($sql) or die ('Error: ' . mysql_error());

mysql_close();

Спасибо всем за помощь. Крис.

Ответы [ 3 ]

1 голос
/ 22 октября 2010

В зависимости от вашей ОС, новая строка может быть "\ n", "\ r \ n" или "\ r".

Дайте этому шанс:

$strip=explode("<br>", nl2br($linkfield));

или, возможно,безопаснее:

$strip=explode("\n", str_replace(array("\n", "\r\n"), "\n", $linkfield));
0 голосов
/ 22 октября 2010
0 голосов
/ 21 октября 2010

используйте preg_match, чтобы найти каждый URL и добавить его в базу данных. Пример 3 на этой странице должен выполнить трюк: http://php.net/manual/en/function.preg-match.php Таким образом, вы можете вводить URL-адреса без использования новой строки. если вы используете только URL-адреса, то вы также можете добавить разделитель после каждого URL-адреса, то есть запятую (которая не используется в URL-адресе), чтобы разбить их, используя идею взрыва () в комментарии.

...