Всем привет. Помогите: есть скрипт, который вытаскивает из исходного url назви ссылок, мне надо чтоб когда встречается в назве "(" или "," назву обрезать до этого символа, с душкой все норм, а вот с комой дает глюки, один раз выводит хорошо, другой раз какую то фигню, вопшем не работает правильно с ",".
почему с комой глюк а с "(" все норм for($i=0;$i<count($name[1]);$i++) { if($sep!=""){ //если мы указали "," или "(" $z=strpos($name[1][$i],$sep); //то узнаем позицию символа $name2[1][$i]=substr($name[1][$i],0,$z); // и вырезаем } // $name[1] - это массив назв ссылок Добавлено спустя 5 минут 6 секунд: хотите могу весь скрипт выслать?
Приведи пример ссылки с которой проблема и побольше кода. Тот кусок который ты привел работает правильно, по крайней мере у меня...
файл view.php <!DOCTYPE HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <link rel="stylesheet" type="text/css" href="style.css"/> </style> <title></title> </head> <pre> <?php if((!isset($_POST['link'])) ||(!isset($_POST['start'])) ||(!isset($_POST['end']))) { //header("Location:index.php"); echo "<a href=index.php><h2>Home</h2></a>"; exit; // Ïåðåâ³ðÿºìî ÷è ïîëÿ íå ïóñò³, ÿêùî òàê, òî ïîâåðòàºìîñü íà ãîëîâíó } $url=$_POST['link']; $start=$_POST['start']; $end=$_POST['end']; $sep=$_POST['separator']; $n=parse_url($url, PHP_URL_HOST); $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, $url); // set url to post to curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s $html = curl_exec($ch); if ($html==""){ // Ïåðåâ³ðÿºìî, ÷è èñõîäíèé êîä íå ïóñòèé, ÿêùî òàê, òî âèâîäèìî ïîâ³äîìëåííÿ echo "<h4>Íåìຠäîñòóïó äî ³íòåðíåòó, àáî</br>íåïðàâèëüíà àäðåñà ìàãàçèíó!</h4><br> <h3>Ïîâåðí³òüñÿ íà ãîëîâíó</h3>"; echo "<a href=index.php><h2>Home</h2></a>"; exit; } $str=str_replace("\n"," ",$html); $start=strpos($str,$start); // Âèçíà÷àºìî îñòàííº âõîäæåííÿ ïî÷àòêîâîãî áðåíäó $end=strripos($str,$end); // Âèçíà÷àºìî îñòàííº âõîäæåííÿ ê³íöåâîãî áðåíäó if($end!==false && $start!==false && $end>$start) { echo $start."</br>".$end; }else{ $start=strripos($str,$start); } $k=$end-$start; $str=substr($str,$start,$k+50); // âèð³çàºìî òåêñò ì³æ start i end $str=str_replace('"',"",$str); // çàì³íÿºìî óñ³ " íà ïîðîæí³é ñèìâîë $str=str_replace("'","`",$str); // çàì³íÿºìî óñ³ ' íà ñèìâîë ` $str=str_replace(",",".",$str); //Âèòÿãóºìî íàçâè ññèëîê $content = strip_tags($str,'<a>'); preg_match_all("/>(.*?)<\/a>/", $content, $name); // ìàññèâ name[1] áóäå ì³ñòèòè íàçâè ññèëîê, òîáòî áðåíä³â if($name[1]==NULL) { $content = strip_tags($str,'<li> '); preg_match_all("/>(.*?)<\/li>/", $content, $name);; } if($name[1]==NULL) { $content = strip_tags($str,'<td> '); preg_match_all("/>(.*?)<\/td>/", $content, $name);; } $content2 = strip_tags($str,'<a>'); preg_match_all("/<a\shref=(.*?)\>/", $content2, $link); //print_r($link[1]); for($i=0;$i<count($name[1]);$i++) { if($sep!=""){ // ÿêùî ³ñíóº ðîçä³ëüíèê $z=strpos($name[1][$i],$sep); // òî âèçíà÷àºìî éîãî ïîçèö³þ if(!empty($z)) $name2[1][$i]=substr($name[1][$i],0,$z);// ³ âèð³çàºìî íàçâó ññèëêè äî öüîãî ðîçä³ëüíèêà }else $name2[1][$i]=$name[1][$i]; // ÿêùî í³ òî íàçâó çàëèøàºìî ö³ëîþ } ?> <h3><font color=#f00000>ʳëüê³ñòü áðåíä³â</font> - <?php echo count($name[1])?> </h3><br> <textarea id="textarea1" name="opent" cols="50" rows="25"> <?php echo "\n"; for ($i=0;$i<count($name[1]);$i++) { $i2=$i+1; if(strlen($name2[1][$i])>2 && strlen($name2[1][$i])<100){ // ÿêøî íàçâà áðåíäó >2 i <100 òî âèâîäèìî â textarea $name2[1][$i]=str_replace("`","'",$name2[1][$i]); // îáð³çàþ÷è ïðîá³ëè $name2[1][$i]=str_replace(".",",",$name2[1][$i]); echo "$i2\t".trim($name2[1][$i])."\n"; } } ?> </textarea> <textarea id="textarea2" name="opent" cols="50" rows="25"> <?php //foreach ($name[1] as $v) //echo "$v\n"; echo "\n"; for ($i=0;$i<count($name[1]);$i++) { $i2=$i+1; $name[1][$i]=str_replace(".",",",$name[1][$i]); $name[1][$i]=str_replace("`","'",$name[1][$i]); // âèâîäèìî áðåíäè áåç ðîçä³ëüíèêà if(strlen($name[1][$i])>2 && strlen($name[1][$i])<100) { echo "$i2\t".trim($name[1][$i])."\n"; } } ?> </textarea> </pre> <body> </body> </html> Добавлено спустя 1 минуту 15 секунд: index.php <!DOCTYPE HTML> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <title></title> </head> <form action="view.php" method="POST"> <h2>Ââåä³òü àäðåñó ìàãàçèíó</h2><br> <SELECT NAME=link> <OPTION VALUE=http://www.intimo-shop.ru/>http://www.intimo-shop.ru/</OPTION> <OPTION VALUE=www.6pm.com/brands>www.6pm.com/brands</OPTION> <OPTION VALUE=www.adorama.com/catalog.tpl?op=brands>www.adorama.com/catalog.tpl?op=brands</OPTION> <OPTION VALUE=www.bodybuilding.com/store/listing.htm>www.bodybuilding.com/store/listing.htm</OPTION> <OPTION VALUE=www.chainreactioncycles.com/Sitemap.aspx>www.chainreactioncycles.com/Sitemap.aspx</OPTION> <OPTION VALUE=www.chemistdirect.co.uk/brand_index.php>www.chemistdirect.co.uk/brand_index.php</OPTION> <OPTION VALUE=www.dress-for-less.com/tmpl/en/brands.tmpl>www.dress-for-less.com/tmpl/en/brands.tmpl</OPTION> <OPTION VALUE=www.feelunique.com/content/brands>www.feelunique.com/content/brands</OPTION> <OPTION VALUE=www.focalprice.com/Brands>www.focalprice.com/Brands</OPTION> <OPTION VALUE=www.ru.forzieri.com/rus/brands_map.asp?l=rus&c=rus>www.ru.forzieri.com/rus/brands_map.asp?l=rus&c=rus</OPTION> <OPTION VALUE=www.fragrancedirect.co.uk/brand/icat/brand/>www.fragrancedirect.co.uk/brand/icat/brand/</OPTION> <OPTION VALUE=idiabet.ru/vendors.html>http://idiabet.ru/vendors.html</OPTION> <OPTION VALUE=www.lookfantastic.com/brands.dept>www.lookfantastic.com/brands.dept</OPTION> <OPTION VALUE=http://www.marriott.com/marriott-brands.mi>http://www.marriott.com/marriott-brands.mi</OPTION> <OPTION VALUE=http://www.profi-sport.ru/cat/~/~/~/~/brands/>http://www.profi-sport.ru/cat/~/~/~/~/brands/</OPTION> <OPTION VALUE=http://www.sapato.ru/brands/>http://www.sapato.ru/brands/</OPTION> <OPTION VALUE=http://shiekhshoes.com/brands.aspx>http://shiekhshoes.com/brands.aspx</OPTION> <OPTION VALUE=http://www.justeva.ru/shop/brands/>www.justeva.ru/shop/brands</OPTION> <OPTION VALUE=http://www.intimo-shop.ru/>http://www.intimo-shop.ru/</OPTION> <OPTION VALUE=http://shiekhshoes.com/brands.aspx>http://shiekhshoes.com/brands.aspx</OPTION> <OPTION VALUE=http://www.brendberry.ru/letter-a>http://www.brendberry.ru/letter-a</OPTION> </Select> <!--<input type="text" name="link" value="http://www.justeva.ru/shop/brands/" size=57><p> --> <h4>Ââåä³òü ïî÷àòêîâèé áðåíä Ââåä³òü ê³íöåâèé áðåíä</h4><p> <input type="text" name="start" value="Amarea" size=27></t\t> <input type="text" name="end" value="Zukerka" size=25><p> <h4>Âèáåð³òü ðîçä³ëüíèê â íàçâàõ áðåíä³â</h4> <SELECT NAME=separator> <OPTION value=""></OPTION> <OPTION VALUE="(">( - äóæêà</OPTION> <OPTION VALUE=".">, - êîìà</OPTION> <OPTION VALUE=" "> - ïðîá³ë</OPTION> </select><p> <input type="submit" name="submit" value=Send> <?php set_time_limit (30); ?> <body> </body> </html>
viewtopic.php?f=13&t=39735&p=321814&hilit=+%D0%BF%D0%BE%D1%81%D0%BB%D0%B5+%D0%B7%D0%BD%D0%B0%D0%BA%D0%B0#p321814 Мож поможет. И код в подсветку кидай и в тег php, чтобы было виднее. И экранируйте методы.