Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Нужно напутсквие/помощь по коду.
цитата
12/08/12 в 14:24
 Lexikon

<?php

$arrDump    = file('dump.dat');
$arrName    = file('name.dat');
$arrUrl    = file('url.dat');

$expFile    = 'exp_file.txt';

$countName    = count($arrName);


for ($i = 0; $i < $countName; $i++)
{

echo $arrName[$i];   

         foreach ($arrDump as $valueDump)
       {
      
                 if (strstr($valueDump, $arrName[$i]))
                 {
                      $expValue = str_replace($arrName[$i], $arrUrl[$i], $valueDump);
                 file_put_contents($expFile, $expValue, FILE_APPEND | LOCK_EX);
                 }
                 else
                 {
                     continue;
                 }      


}
echo "Done!";

?>


Суть в том что есть 3 файла.
dump.dat - тут дамп по типу img|flv|desc|model
name.dat - имена моделей
url.dat - юрл адреса платников моделей

суть скрипта находить имя модели заменять его на юрл, хотел упростить себе работу ибо список большой и вручную это делать долго.

Но чего то я заебся с кодом, скрипт меняет, но только по последнему имяни модели.
Где ошибся немогу понять или что то не вижу. пробовал вместо цикла FOR использовать foreach , это в самом начале, думал там какие то недопонимания но нет, всё так же icon_confused.gif

Подскажите пожалуйста.
цитата
12/08/12 в 17:21
 pipez
вместо strstr лучше регулярку сделай
цитата
12/08/12 в 18:46
 Yabuti
    создаем большой массив, где индексы - имена моделей, а значения - урлы, вида: "Sasha Gray"=>"http://google.com/"
    считываем файл dump.dat в массив
    берем i-й элемент, explod'им по разделителю "|" в 4 переменные
    циклом прогоняем сравнение всех элементов первого массива с текущим значением 4-й переменной (имя модели)
    если совпало - перезаписываем переменную значением из первого массива (модель=>урл)
    склеиваем точкой все вновь $a."|".$b."|".$c."|".$d
    присваиваем текущей переменной массива из файла dump.dat
    повторяем count($dumpdatarr) раз


Я бы сделал так icon_wink.gif

-----
Если не получится - напиши, повторяются ли имена моделей и образцы данных, как в дата-файлах, сделаю скрипт.

-----
А вообще все это можно сортировками в Excele за 20 минут сделать:
первый файл в 4 столбца раскидать (| менять на табуляцию, затем в Эксель),
упорядочить по столбику моделей,
правее вставить столбцы из остальных файлов, тоже упорядочить эти два столбца по именам моделей - имена из первого файла (упорядоченные) окажутся напротив имен из второго файла, связанных с третьим файлом
переносим столбцы справа влево с наложением - чтобы остался один столбец моделей и все обратно в текстовый файл
меняем знак табуляции на | - и готово icon_cool.gif
цитата
12/08/12 в 18:52
 Yacc
Код:
$dump = array( '|||a', '|||b', '|||c', );
$names = array( 'a', 'b', 'c' );
$urls = array( '1', '2', '3' );

$x = count( $names );
$y = count( $dump );
$z = 3;

if( $x == count( $urls ) )
    for( $i = 0; $i < $x; $i += 1 )
        for( $j = 0; $j < $y; $j += 1 ) {
            $n = explode( '|', $dump[ $j ] );
            if( isset( $n[ $z ] ) and $n[ $z ] == $names[ $i ] ) {
                $n[ $z ] = $urls[ $i ];
                $dump[ $j ] = implode( '|', $n );
            }
        }

var_dump( $dump );
цитата
12/08/12 в 20:05
 Lexikon
кстати про эксель я чет и забыл
там кстати юрл такие что все просто будет
smail54.gif

а с кодом еще пошаманю icon_smile.gif

всем спасибо!


Эта страница в полной версии