fopen() имя файла через переменную

12
HR
На сайте с 22.08.2010
Offline
94
935

Помогите решить проблему? Перерыл весь интернет!

Вот мой код:

$lines = file('file.txt');
foreach ($lines as $line)
{
echo $line = trim($line);

// строка, которую будем записывать
$text = file_get_contents($line);

// открываем файл, если файл не существует, делается попытка создать его
$fp = fopen($line, "w+");

// записываем в файл текст
fwrite($fp, $text);

// закрываем
fclose($fp);

Вылазят ошибки:

Warning: fopen(http://freakopedia.ru/wiki/%D0%90%D0%BA%D0%B8%D0%BC%D0%BE%D0%B2_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D1%8C%D0%B5%D0%B2%D0%B8%D1%87): failed to open stream: HTTP wrapper does not support writeable connections in /var/www/test/data/www/test.ru/parser/1.php on line 16

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/test/data/www/test.ru/parser/1.php on line 19

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/test/data/www/test.ru/parser/1.php on line 22

Если в $fp = fopen($line, "w+"); за место $line использовать 'например' то все работает. Вопрос в том как вставить в переменную в функцию fopen() ?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

А чем вас человеческий file_put_contents не устроил?

---------- Добавлено 29.01.2018 в 18:06 ----------

$fp = fopen($line, "w+");

А как название фала может быть урл?!

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
HR
На сайте с 22.08.2010
Offline
94
#2
LEOnidUKG:


А как название фала может быть урл?!

Я делаю простенький парсер, поэтому название файлов должно быть как урл, я потом вырежу из этой переменной http:// и все лишнее.

S
На сайте с 30.09.2016
Offline
469
#3
HEMASTER:
Я делаю простенький парсер, поэтому название файлов должно быть как урл, я потом вырежу из этой переменной http:// и все лишнее.

Лишний там урл. А парсер читать должен, а не записывать.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
HR
На сайте с 22.08.2010
Offline
94
#4
Sitealert:
Лишний там урл. А парсер читать должен, а не записывать.

ок. Тогда кто записывать должен?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5
HEMASTER:
ок. Тогда кто записывать должен?

создайте из строки md5 код, это будет название файла.

S
На сайте с 30.09.2016
Offline
469
#6
HEMASTER:
ок. Тогда кто записывать должен?

Куда записывать? Вы можете записывать только на свой сервер, а не по какому-то стороннему адресу.

HR
На сайте с 22.08.2010
Offline
94
#7

Вопрос в том как присвоить название создаваемому файлу с помощью переменной в функции fopen()? Если нельзя никак, то нужно другое решение.

H
На сайте с 21.08.2004
Offline
122
#8
HEMASTER:
Я делаю простенький парсер, поэтому название файлов должно быть как урл, я потом вырежу из этой переменной http:// и все лишнее.

надо сначала вырезать, а потом пытаться создать файл.

замените/уберите спец символы (:,// и т.д.).

$fp = fopen(str_replace(':','',str_replace('/','',$line), "w+")) // проверьте кол-во скобок

Есть что-то, что мы не знаем, но узнать это мы не можем.
HR
На сайте с 22.08.2010
Offline
94
#9

Я четко поставил вопрос "Вопрос в том как присвоить название создаваемому файлу с помощью переменной в функции fopen()? Если нельзя никак, то нужно другое решение." Остальное не интересует пока.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#10

Мде... ТС не пробиваемый.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий